SPRUI04F july 2015 – april 2023
The compiler implements support for the OpenMP 3.0 API and portions of the OpenMP 4.0 specification. To enable support for OpenMP use the --openmp or --omp compiler option.
OpenMP is the industry standard for shared memory parallel programming. It provides portable high-level programming constructs that enable users to easily expose a program's task and loop level parallelism in an incremental fashion. With OpenMP, users specify the parallelization strategy for a program at a high level by annotating the program code with compiler directives that specify how a region of code is executed by a team of threads. The compiler works out the detailed mapping of the computation to the machine. The OpenMP programming API enables the programmer to perform the following:
OpenMP is a thread-based programming language. The master thread executes the sequential parts of a program. When the master thread encounters a parallel region, it forks a team of worker threads that along with the master thread execute in parallel.
The OpenMP API is made up of directives (#pragmas), function calls, and environment variables. The compiler translates the OpenMP API into multi-threaded code with calls to a custom runtime library that implements support for thread management, shared memory and synchronization. For further details on the OpenMP API (including the API specification), please refer to http://www.openmp.org. For details about TI's support for OpenMP, including descriptions of supported pragmas, see the TI OpenMP Accelerator Model online documentation.
The OpenMP runtime for SYS/BIOS (OMP) library implements the OpenMP solution stack. Currently, OpenMP is supported on TI DSPs only for SYS/BIOS operating system. All OpenMP programs must be linked with the OMP run-time library found in the BIOS-MCSDK 2.1.