AN INTRODUCTION TO PARALLEL PROGRAMMING MODELS
Prof. Lawrence Rauchwerger (Texas A&M University)
Time & Location : May 2, 5:30PM ~ 8:30PM, Room 102, Building 301May 3, 5:30PM ~ 8:30PM, Room 106, Building 301 May 4, 5:30PM ~ 8:30PM, Room 102, Building 301May 6, 1:00PM ~ 4:00PM, Room 102, Building 301
Abstract :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.
Lecture contents 1. Introduction to Parallel Computer SystemsParallel Architectures - Brief historyTaxonomy of parallel architecturesWhat is used today: Multicores, Clusters (of multicores, multi socket multicores), accelerators,e.g., GPGPU, large (petascale) systems2. Performance issues in parallel programmingWhat are the issues in performance of parallel computing.LocalityLoad balanceParallelism or lack of it (synchronizations)The issues are coupled ... How do we do deal with them ? What is most important ?3. Programming Models – General DiscussionTaxonomy of programming models (languages, directives, libraries etc)Examples from each area: MPI, OpenMP, UPC, TBB, STAPL4. Programming Models – Generic Libraries ITBB, STAPL, etc5. Programming Models – Generic Libraries IITBB, STAPL, etc6. Programming Models – LanguagesLanguages: UPC, X10, Mapreduce, etc7. Building scientific applications with Domain Specific LibrariesUse of higher level libraries (e.g., STAPL, TBB, Petsc, Trillinos) to build whole applications.Where are we going ? High level programming ?
Biography :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)