|Subject Area||Applications and Foundations of Computer Science|
|Semester||Semester 7 – Fall|
- Introduction to parallel and distributed algorithms and computations in modern super – computers and computer network clusters.
- Design and programming parallel and distributed numerical and non – numerical algorithms.
- Synchronization problems, balancing the computational workload, synchronization , communication cost and scalability.
- Analysis, evaluation and prediction of the behavior of parallel algorithms and calculations .
- Programming using MPI, PVM, OpenMP, Beowulf, Condor, JaWS and parallel MATLAB.
The course aims to give students an advanced interdisciplinary introduction to applied parallel computing on modern supercomputers through various different themes (from numerical linear algebra to N-body problems and Fourier transforms). Basic concepts in shared and distributed memory programming are taught.
Upon successful completion of this course the student should be able to:
- Understandmodels , constraints and fundamental concepts in the field of parallel and concurrent programming environments messaging (message passing) and shared memory (shared memory), and can apply this knowledge in various algorithms and systems.
- Design and adapt algorithms for execution in parallel and distributed environments.
- Analyze algorithms for the correctness , reliability , safety and performance.
- Implement a program using shared memory or message passing programming model.