Skip to content
Snippets Groups Projects
README.openmp 1.42 KiB
Newer Older
                                OpenMP

OpenMP is a shared-memory parallel-programming API.  As the grid dimensions get larger,
the need for parallel computing becomes more important.  With OpenMP, wgrib2 will use
multiple threads, typically one thread per core.  For the typical PC, wgrib2 will run 
on the number of cores that are on the CPU chip which is typically 2, 3, 4, 6 or 8.
The multi-core speedup is only significant when the grids have several million grid points.

You can control the number of cores used by the environment variable OMP_NUM_THREADS
 and the -ncpu option.  The latter overrides the former.

Status: working
  Tested: Redhat 5/6 linux: open64, gcc
          AIX: xlc
          Ubuntu 12.04
          Redhat 4: gcc did not officially support OpenMP, had problems
     complex-packing reading is parallelized when bitmaps are not used (-g2clib 0/1)
     complex-packing reading is partly parallelized if bitmaps are used (-g2clib 0/1)
     jpeg2000 is not parallelized because it depends on an external library
     geolocation is partially parallelized
     caution, stock gcc 4.1.x does not support openmp
     Running multiple copies of wgrib2 can be done along with OpenMP.
     Nodes with 24+ cores should have environment variable OMP_NUM_THREADS set to
      a number less than the number of cores. Little perforance gain for
      a large number of cores.
     NUMA should be considered.