How to Use OpenMP
How to Compile OpenMP Code
Additional compiler flags tell the compiler to enable OpenMP. Otherwise, the OpenMP pragmas in the code will be ignored by the compiler.
Depending on which compiler you have loaded, use one of the flags below to compile your code.
For example: if you plan to use an Intel compiler for your OpenMP code written in C, you have to type this to create an application called "omp_code.exe":
$ icc -openmp omp_code.c -o omp_code.exe
How to Run an OpenMP Application
If you forget to set OMP_NUM_THREADS to any value, the default value of your cluster environment will be used. In most cases, the default is 1, so that your program is executed serially.
One way to specify the number of threads is by passing an extra argument when running the executable file. In order to start the parallel regions of the example program above with 12 threads, you'd have to type:
$ OMP_NUM_THREADS=12 ./omp_code.exe
This automatically sets the environment variable OMP_NUM_THREADS to 12, but it is reset to its default value after the execution of "omp_code.exe" finished.
Another way to set the number of threads is by changing your environment variable. This example will increment it up to 24 threads and override the default value:
$ export OMP_NUM_THREADS=24
If you simply run your application with
$ ./omp_code.exe next, this value will be used automatically.
The performance of your application may be improved depending on the distribution of threads. Go here to learn more about thread pinning in order to minimize the execution time.