Course Information Package
|Course Unit Title||PARALLEL PROCESSING|
|Course Unit Code||ACOE401|
|Course Unit Details||BSc Computer Engineering (Required Courses) - BSc Computer Science (Computer Electives) -|
|Number of ECTS credits allocated||6|
|Learning Outcomes of the course unit||By the end of the course, the students should be able to:|
|Mode of Delivery||Face-to-face|
|Recommended optional program components||NONE|
· Introduction to Parallel Processing: Historic evolution of parallel processing. Motivation for parallel processing. Parallel processing applications case studies.
· Parallel Computer Models and Systems: Classification of parallel computer architectures, SIMD and MIMD systems. Shared address space, message passing and data parallel processing. Networks of Workstations, clusters, SANs, MPP.
· Performance Metrics: Workloads and benchmarks, execution time, throughput, speedup and efficiency. Latency tolerance techniques, load balancing and data locality issues.
· Interconnection Networks: Communication performance, latency and bandwidth. Interconnection organization, links, switches and interconnection topologies. Switch design, routing and flow control. High speed LANs.
· Shared Memory Multiprocessors: The cache coherence problem, snoop-based and directory based cache coherence. Memory consistency and replication. Synchronization mechanisms, mutual exclusion, event and global synchronization.
· Microarchitecture Parallelism: Levels of parallelism, DLP, ILP, TLP. The temperature and power wall problem, clock skewing and soft errors. Single-chip parallel processing architectures such as multithreaded processors, CMP and multi-core processors, and tile architectures. Networks-on-Chip, Heterogeneous architectures.
· Parallel Programming: The parallelization process, decomposition, assignment, orchestration and load balancing. Message passing programming using MPI, basic instructions, point to point communication, collective communication and barrier Synchronization. Shared memory programming using OpenMP, parallel regions, worksharing, data environment, and synchronization.
|Recommended and/or required reading:|
|Planned learning activities and teaching methods|
The taught part of course is delivered to the students by means of lectures, conducted with the help of both computer presentations and traditional means. Practical examples and exercises are included in the lectures to enhance the material learning process. Lecture notes and presentations are available through the web for students to use in combination with the textbooks.
Lectures are supplemented with laboratory work curried out on parallel programming. During laboratory sessions, students develop, test , debug programs in C using OpenMP and MPI.
Students are also expected to submit and present orally a literature review group project on the current developments in the field of parallel processing.
|Assessment methods and criteria|
|Language of instruction||English|