NASA INS3D Code
INS3D is a
multi-zone code from NASA Ames which solves the
incompressible Navier-Stokes equations for both
steady-state and unsteady flows. The parallelization
strategy employed a manually implemented
parallelisation using MPI for inter-zone parallelism
and OpenMP directives generated by ParaWise for
parallelization was performed by T.Faulkner and
J.Dacles-Mariani at NASA.
parallelization within a zone performed using CAPO.
Hybrid MPI and OpenMP Results
The results are for a 19.2 million grid
points Space Shuttle Main Engine (SSME) turbo-pump
impeller test case on an SGI Origin 2000.
(Results courtesy of C. Kiris, NASA Ames).
In this case, the most effective
performance is achieved by the 20 MPI group results
where the 20 processor run used a single thread in
each MPI group and the 200 processor run used 10
OpenMP threads on each MPI group. The most effective
balance of MPI groups and OpenMP threads per group
is obviously dependent on the application code, the
test case being performed and the parallel machine
being used. Experimentation is often required to
identify the best scenario for a particular case.
OpenMP directives generated
PARALLEL Regions : 95
PARALLEL + DO Regions : 297
Parallel DO Loops : 251
REDUCTION Loops : 79
ATOMIC/CRITICAL Sections : 6
Regions with FIRSTPRIVATE : 2
Duplicated Routines : 13