Distributed and Parallel Processing George Wells
Course Summary Introduction and Background –Terminology –Flynn's taxonomy, Amdahl's Law, etc. –Hardware issues (handout) –Different models and examples Parallel algorithm patterns (online)
Course Summary Parallel Processing –OMP: semi-automatic parallelisation (online) –Threads: Java threads and concurrency libs (Java docs) –Interprocess communication: Unix System V IPC (online) –CSP: programming model (online) –JCSP (online) –GPGPU Programming –Massive parallelism
Course Summary (cont.) Distributed Processing –Remote Procedure/Method Calls: RMI (Java docs) –Virtual Shared Memory: Linda, JavaSpaces, TSpaces (online) Formal specifications –CSP metalanguage (online)
Other Resources Programming on Parallel Machines by Norm Matloff –Very good overview of parallel programming techniques and applications Papers –JCSP paper on validating Java programs –Linda bioinformatics paper News items
Key Points Modern hardware demands parallel programming Difficulty of parallel/distributed programming –Deadlock, race conditions, etc. –Debugging is hard –Maximising efficiency/performance Parallel ↔ Distributed Programming is a continuum Trade-offs between ease-of-use and performance