What kind of system uses OpenMP?
OpenMP was designed from the outset for shared-memory machines, commonly called SMP (Symmetric Multi-Processor) machines. These types of parallel computers have the advantage of not requiring communication between processors for parallel processing, and therefore bypassing the associated overhead. In addition, they allow multi-threading, which is a dynamic form of parallelism in which sub-processes are created and destroyed during program execution. In some cases this can be done automatically at compile time. In other cases, the compiler needs to be instructed about details of the “parallel region” of code where multi-threading is to take place. OpenMP was designed to perform this task. OpenMP therefore needs both a shared-memory (SMP) computer and a compiler that understands OpenMP directives. The Sunfire machines at HPCVL fulfill both of these requirements. OpenMP will not work on distributed-memory clusters, such as a Beowulf. However, it may sometimes be used with combination with