Adding OpenMP threading to an MPI code is an efficient way to run on multicore processors. Since OpenMP uses a global shared address space within each node, using OpenMP may reduce memory usage while adding parallelism. It can also reduce time spent in MPI communications. A collection of OpenMP resources, tutorials, etc can be found at OpenMP Resources. An interesting advantage of OpenMP is that you can add it incrementally to an existing code.
Compiling to use OpenMP
OpenMP is supported in all three programming environments available on Edison; however, each compiler suite has a different syntax for enabling OpenMP.
|Compiler Suite||Programming Environment module name||Command line option for OpenMP|
|Cray Compilers||PrgEnv-cray||none needed; OpenMP is the default|
Running with OpenMP
Please refer to Using OpenMP with MPI for more information and sample batch scripts for Edison.