Clayton Second semester 2008 (Day)
Modern computer systems contain parallelism in both hardware and software. This unit covers parallelism in both general purpose and application specific computer architectures and the programming paradigms that allow parallelism to be exploited in software. This unit examines both shared memory and message passing paradigms in both hardware and software; concurrency, multireading and synchronicity; parallel, clustered and distributed supercomputing models and languages.
At the completion of this unit, students will have:
Knowledge of:
A variety of parallel architectures, such as bus-based, massively parallel, cluster, vector.
A variety of parallel programming paradigms, synchronization and parallelization primitives, message passing, data parallel, tuple space.
Understanding of:
Concurrency, synchronicity and parallelism.
The design issues of parallel systems.
Skills in:
Designing, developing and debugging parallel programs using a variety of paradigms.
Assessment will include four assignments as follows: Assignment 1 and Assignment 2 = 50%, Assignment 3 and Assignment 4 = 38%, and Lecture based quizzes = 12%
2 x contact hrs/week
CSE2302 and CSE2/3324; in addition students must have completed 24 points of level 3 CSE units, which may include CSE3324 if taken as a prerequisite.