Module 10: Open Multi-Processing
  Lecture 19: What is Parallelization?
 


Why OpenMP ?

OpenMP is :

  • Portable
    The API is specified for C/C++ and FORTRAN
    Supported in Most major platforms e.g. Unix and
    Windows
  • Standardized
  • Lean and Mean
  • Easy in use

We should parallelize only when the overhead due to parallelization is less than the speed-up obtained.

Components of OpenMP

OpenMP consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior

Directives Environment Variables Runtime Environment
  • Parallel Regions
  • Work Sharing
  • Synchronization
  • Data Sharing
    Attributes
  • Orphaning
  • Number of
  • Threads
  • Scheduling Type
  • Dynamic Thread
    Adjustment
  • Nested Parallelism
  • Number of Threads
  • Thread ID
  • Dynamic Thread
    Adjustment
  • Nested Parallelism
  • Timers
  • API for Locking