Compute Canada

What kind of system uses OpenMP?

Please note: The FAQ pages at the HPCVL website are continuously being revised. Some pages might pertain to an older configuration of the system. Please let us know if you encounter problems or inaccuracies, and we will correct the entries.

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 distributed memory parallel systems such as MPI. However, this holds only if each of the nodes in a cluster has in itself at least 2 CPUs available.