An Overview of OpenMP Ruud van der Pas Senior Staff Engineer Oracle Solaris Studio Oracle Menlo Park, CA, USA OpenMP is a widely accepted and used shared memory parallel programming model (http://www.openmp.org). Over time it has evolved and adapted to both hardware trends and the needs of software developers. This makes it very suitable to develop parallel applications for multicore based systems, ranging from a small laptop to a very large server. The tutorial presents a practical overview of OpenMP. Other than some programming experience in C, C++ or Fortran, no background in parallel computing is assumed. Most OpenMP constructs will be introduced and explained by means of an example. Agenda 13:30 - 14:30 Basic Concepts in Parallelization This talk covers the most important basic concepts in parallel computing. Topics covered are threads, parallelization, speed up, efficiency, Amdahl's Law and parallel overheads. 14:30 - 15:30 Getting Started with OpenMP In this talk we demonstrate how OpenMP can be used to parallelize the most common and straightforward types of computations. Several live demos will be given. 15:30 - 16:00 Tea/Coffee Break 16:00 - 17:00 Using OpenMP Now that the basics of OpenMP have been covered, it is time to look at certain constructs in more detail, as well as introduce some powerful, but more specialized features OpenMP offers. 17:00 - 18:00 OpenMP and Performance The goal of parallelization is to improve performance. Unfortunately, there are many misconceptions regarding OpenMP and performance. In this talk these will be addressed, as well as tips and tricks how to obtain good performance using OpenMP.