PG CNS 205F
Pa Ne of MG
MITNE 106-2 HIGH-PERFORMANCE SCIENTIFIC L[r[P[c
3 folols
COMPUTING
Module 1
INTRODUCTION TO MULTIPROCESSORS : Parallel computer models — Symmetric and
distributed shared memory architectures ~ Performance Issues. Multi-core Architectures - Software
‘and hardware multithreading - SMT and CMP architectures ~ Design issues ~ Case studies ~ Intel
Malti-core architecture - SUN CMP architecture - IBM cell processor - NVIDIA GPU - AMD.
APU.
‘Module tt
PARALLEL PROGRAMMING. : Fundamental concepts ~ Designing for threads. Threading and
parallel programming constructs - Synchronization ~ Critical sections ~ Deadlock. Threading APIs.
Shared memory programming : The OpenMP standard. Parallelisation using compiler directives.
‘Threading and variable types. Loop and sections constructs. Program correctness and reproducibility.
Scheduling and false sharing as factors influencing performance.
‘Module 1
Distributed memory programming : The MPI standard for message passing. Point-to-point and
collective communication. Synchronous vs asynchronous communication, MPI communicators and
topologies.
GPU programming : The CUDA standard. Kemels and host-device communication. Shared and
constant memory, synchronicity and performance. GPU coding restrictions. Overview of Open CL,
Open Ace
‘Module 1V
MULTITHREADED APPLICATION DEVELOPMENT: Algorithms, program development and
performance tuning. Limitations to parallel performance : Strong vs weak scaling, Amdahl's law.
Network contention in modern many-core architectures. Mixed made OpenMP+MPI programming.
References
1. Michael J Quinn, “Parallel programming in C with MPI arid OpenMP”, Tata McGraw Hill, 2003.
2, Shameem Akhter and Jason Roberts, “Multi-core Programming”, Intel Press, 2006.
3, John L, Hennessey and David A. Patterson, “ Computer architecture ~ A quantitative approach”,
Morgan Kaufmann/Elsevier Publishers, Sth. edition, 2011.
4, David E. Culler, Jaswinder Pal Singh, “Parallel computing architecture : A hardware software
approach” , Morgan Kaufmann/Elsevier Publishers, 2004,
5. Wesley Petersen and Peter Arbenz, “Introduction to Parallel Computing”, Oxford University Press,
2004.
6, Jason Sanders, Jason Sanders, CUDA by Example: An Introduction to General-Purpose GPU
Programming, Pearson, 2010
us)