43.1 Overview

We have added the capability to run multiple threads of execution within each MPI task. The multithreading is made possible by usage of OpenMP which is described at www.openmp.org. For information about building a multithreaded FLASH application please refer to Section 5.8.

The OpenMP parallel regions do not cover all FLASH units in FLASH4. At this time we have only focussed on the units which are exercised most heavily in typical FLASH applications: these are the split and unsplit hydrodynamics solvers, the unsplit magnetohydrodynamic solvers, Gamma law and multigamma EOS, Helmholtz EOS, Multipole solver (improved version (support for 2D cylindrical and 3D cartesian)) and energy deposition. The level of OpenMP coverage will increase in future releases.

The setup script will prevent you from setting up invalid threaded applications by exiting with a conflict error. We have added the conflicts to prevent using, for example, a non thread-safe EOS in a OpenMP parallel region. Example setup lines can be found in sites/code.rochester.edu/openmp_test_suite/test.info.