OpenMP (Open Multi-Processing) definition

OpenMP (Open Multi-Processing). A parallel programming model that supports C, C++, and Fortran programming languages. It is based on compiler directives that are added to the code to enable shared memory parallelism. These directives are translated by the compiler supporting OpenMP into calls to the corresponding parallel runtime library. OpenMP is based on a fork-join model, meaning that just one thread will be executing the code until it reaches a parallel region; at this point, the additional threads will be created (fork) to compute in parallel and at the end of the parallel region all the threads will join. The communication in OpenMP between the different threads, is done through the shared memory. The user must annotate the different variables with the kind of data sharing they need (i.e., private, shared). OpenMP is a standard defined by a non-profit organisation: OpenMP Architecture Review Board (ARB). Based on this definition, different commercial or open source compilers and runtime libraries offer their own implementation of the standard. The loop parallelism in OpenMP had been the most popular in scientific applications. The main reason is that it fits perfectly the kind of code structure in these applications: loops. And this allows a very easy and straightforward parallelisation of the majority of codes. Since OpenMP 4.0, the standard also includes task parallelism, which offers a more flexible and powerful way of expressing parallelism. But these advantages have a cost: the ease of programming. Scientific programmers still have difficulties in expressing parallelism with tasks because they are used to seeing the code as a single flow with some parallel regions in it.

Related to OpenMP (Open Multi-Processing)

  • Cannabis processing facility means a person that:

  • Ultra Low Sulfur Diesel Fuel means diesel fuel that has a sulfur content of no more than fifteen parts per

  • secondary processing means concentration or other beneficiation of iron ore other than by crushing or screening and includes thermal electrostatic magnetic and gravity processing and agglomeration, pelletization or comparable changes in the physical character of iron ore;

  • Loop Concentrator/Multiplexer or "LCM" is the Network Element that does one or more of the following: aggregates lower bit rate or bandwidth signals to higher bit rate or bandwidth signals (multiplexing); disaggregates higher bit rate or bandwidth signals to lower bit rate or bandwidth signals (demultiplexing); aggregates a specified number of signals or channels to fewer channels (concentrating); performs signal conversion, including encoding of signals (e.g., analog to digital and digital to analog signal conversion); or in some instances performs electrical to optical (E/O) conversion. LCM includes DLC, and D4 channel banks and may be located in Remote Terminals or Central Offices.

  • high-efficiency cogeneration means cogeneration meeting the criteria laid down in Annex II;