Advanced Computer Architecture and Parallel Computing
Subject Code: ECP3226
Aim of Subject: To provide a sound understanding of the hardware and software systems required for high performance computing.
Learning Outcome of Subject: At the completion of the subject, students should be able to :
  • identify the high performance computing classification and their architectures.
  • apply performance measurement of computer architecture using different types of methods.
  • explain the pipelining concepts and its hazard.
  • solve the hazards of pipelining using different types of techniques.
  • describe the superscalar architecture of high-performance uniprocessors.
  • define the concepts of Vector and Array processor architecture with their vector and scalar software instructions.
  • identify and describe the interconnection network switches such as interconnect topology, omega switch, ring bus switch, multiple bus switch, single bus switch, and crossbar switch.
  • describe cache coherence problem, message passing mechanisms.
  • identify the MIMD computer classification with architecture.
  • identify concurrency, parallel computing and multi-core.
  • identify and explain the Novel architectures with its functionality such as Data flow machine, VLIW architecture etc.
Programme Outcomes:
  • Ability to acquire and apply fundamental principles of science and engineering(10%)
  • Capability to communicate effectively.(10%)
  • Acquisition of technical competence in specialised areas of engineering discipline.(50%)
  • Ability to identify, formulate and model problems and find engineering solutions based on a system approach.(5%)
  • Ability to conduct investigation and research on engineering problems in a chosen field of study.(10%)
  • Understanding of the importance of sustainability and cost-effectiveness in design and development of engineering solutions.(5%)
  • Understanding and commitment to professional and ethical responsibilities.(5%)
  • Ability to work effectively as an individual, and as a member/leader in a team.(5%)
Assessment Scheme:
  • Assignment/Project - Group assignment, Focus group discussion at tutorial, To enhance understanding of basic concepts in lecture(20%)
  • Test Quiz - written exam(20%)
  • Final Exam - written exam(60%)
Teaching and Learning Activities: 46 hours (lectures,tutorials and laboratory experiments)
Credit Hours: 3
Pre-Requisite: ECP2046: Computer Organization and Architecture
  • J.L. Henessay and D.A. Patterson, “Computer Architecture: a Quantative Approach”, Morgan Kaufman, 3rd Edition, 2003.
  • K. Hwang, “Advanced Computer Architecture: Parallelism, Scalability and Programability”, McGraw-Hill, 1993.
  • H.S. Stone, “High Performance Computing”, Addison-Wesley, 1990.
  • Jari Nurmi, “Design: System-On–Chip Computing ASICs and FPGAs”, Springer, 2007.

Subject Contents

  • Introduction

  • Introduction to high performance computing Classification and survey of existing architectures, performance metrics, current state of high performance computing.
  • High Performance Uni-Processors

  • Pipelining : principles, degradation due to functional, data and control hazards, solutions to overcoming hazards. Superscalar techniques: fetch, rename, issue, dispatch, execute and commit stages, branch prediction, exception handling, impact on cache and memory design. Compiler support. Survey of current high performance processors, including multimedia hardware.
  • Parallel Processing: Vector and Array processors

  • Vector and array processing principles, common architectures, instruction types, compiler and high level language support, and applications.
  • Parallel Processing: Parallel Computing

  • Classification, Interconnect topology, hardware synchronization mechanisms, cache coherence, message passing mechanisms. Parallel programming. Concurrency, parallel computing, multi-core.
  • Novel Architectures

  • Data flow, VLIW, and multi-scalar. Future directions in high performance computing.