Introduction to OpenMP
OpenMP is the de facto high-level standard for shared memory parallel programming. It consists primarily of a set of directives (pragmas) that can be inserted into a Fortran or C/C++ program in order to specify what portions of the program Instructor's bioshould be executed in parallel and how the work in those portions should be distributed among the executing threads. OpenMP is supported today in a large fraction of compilers for Fortran, C and C++.
In this tutorial we give an overview of the features of OpenMP and illustrate their use. We then discuss some of the main performance problems encountered when OpenMP is used and how to overcome them.
Barbara Chapman is a Professor of Computer Science at the Unversity of Houston, where she teaches and performs research into parallel programming models and their implementation. Her group has created the open-source OpenUH compiler that implements OpenMP and has been used to explore extensions to this model as well as to develop tools to support parallel application development and tuning. In 2001, Dr. Chapman formed the not-for-profit corporation cOMPunity in order to enable researchers to participate in the work of the OpenMP Architecture Review Board. Since that time she has been involved in the work of defining new versions of OpenMP and in efforts to promote the use of this programming interface. She co-authored a book on OpenMP that describes OpenMP and how to use it in practice.
Introduction to GPU programming
This tutorial will cover basics of GPU programming using NVIDIA Compute Unified Device Architecture (CUDA) C toolkit. The attendees will be introduced to the field of GPU computing and will be taught how to implement simple kernels in CUDA C. The tutorial will start with the overview of the architecture of modern GPUs and will proceed with the overview of the GPU programming model. CUDA C language will be introduced followed by example kernels ported from C to CUDA C.
Dr. Kindratenko is a senior research scientist in the Innovative Systems Laboratory (ISL) at the National Center for Supercomputing Applications (NCSA) and a lecturer in the Department of Electrical and Computer Engineering (ECE) at the University of Illinois at Urbana-Champaign (UIUC). His research interests include high-performance computing and special-purpose computing architectures. He leads NCSA's efforts in the exploration of next-generation computational accelerators, such as FPGAs, Cell, and GPUs, for advanced science and engineering applications. Dr. Kindratenko is the Novel Architectures department editor for the IEEE Computing in Science and Engineering magazine and a co-editor of several special issues on accelerator-based HPC. Dr. Kindratenko also serves on the Board of Directors for OpenFPGA, a non-profit organization concerned with the development and promotion of standards for reconfigurable computing.