AN INTRODUCTION TO PARALLEL PROGRAMMING MODELS
Prof. Lawrence Rauchwerger (Texas A&M University)
Time &Location : May 2, 5:30PM ~ 8:30PM, Room 102, Building 301
May 3, 5:30PM ~ 8:30PM, Room 106, Building 301
May 4, 5:30PM ~ 8:30PM, Room 102, Building 301
May 6, 1:00PM ~ 4:00PM, Room 102, Building 301
Sustainable High Performance Computing means portable performance in time and space. In other words, the performance of programs requiring HPC (resource intensive codes) need to be portable across the main existing architectures and across the machines that will be developed in time. We cannot afford to rewrite entire applications to port them across systems or as soon as a new architecture is developed. We believe that the answer to this challenge is to raise the level of abstraction at which programs are written and leave the \'details\" of mapping the application onto the architecture to the lower levels of implementation written by the vendors themselves. Furthermore, in order to achieve portable performance and at the same time a certain ease of programming we advocate the use a hierarchical system of generic and domain specific libraries that can further raise the level of abstraction of programming. In this course we propose to introduce some fundamentals of parallel programming and related computer systems followed by some classical and proven approaches. Then we will present the latest approaches to parallel library design and how they alleviate the performance portability and ease of use problems. We will cover generic libraries such as TBB, STAPL, Cilk++ as well as parallel languages like MPI, OpenMP, UPC, X10, Mapreduce, etc.
1. Introduction to Parallel Computer Systems
Parallel Architectures - Brief history
Taxonomy of parallel architectures
What is used today: Multicores, Clusters (of multicores, multi socket multicores), accelerators,e.g., GPGPU, large (petascale) systems
2. Performance issues in parallel programming
What are the issues in performance of parallel computing.
Parallelism or lack of it (synchronizations)
The issues are coupled ... How do we do deal with them ? What is most important ?
3. Programming Models – General Discussion
Taxonomy of programming models (languages, directives, libraries etc)
Examples from each area: MPI, OpenMP, UPC, TBB, STAPL
4. Programming Models – Generic Libraries I
TBB, STAPL, etc
5. Programming Models – Generic Libraries II
TBB, STAPL, etc
6. Programming Models – Languages
Languages: UPC, X10, Mapreduce, etc
7. Building scientific applications with Domain Specific Libraries
Use of higher level libraries (e.g., STAPL, TBB, Petsc, Trillinos) to build whole applications.
Where are we going ? High level programming ?
Lawrence Rauchwerger is a Professor Computer Science and of Computer Engineering in the Department of Computer Science, Texas A&M University and the co-Director of the Parasol Laboratory. He received an Engineer degree from the Polytechnic Institute Bucharest, a M.S. in Electrical Engineering from Stanford University and a Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign. Since 1996 he has been on the faculty of the Department of Computer Science at Texas A&M where he co-founded the Parasol Lab. He has held Visiting Faculty positions at the University of Illinois at Urbana-Champaign, Bell Labs, IBM T.J. Watson Research Center, and INRIA Saclay, Paris. Rauchwerger\'s research has targeted the area of high performance compilers, thread level speculation in both software and hardware implementation, libraries for parallel and distributed computing, and adaptive optimizations. His current focus is STAPL, a parallel superset of the ISO C++ STL library which is driven by his goal to improve the productivity of parallel software development. His approach to parallel code development and optimization (STAPL and SmartApps) has influenced industrial products at major corporations.
Contact: Prof. Jaejin Lee (02-880-1863)