3D Magnetohydrodynamics
Back to Applications
Principal Contact Person and Organization (including e-mail address):
AAke Nordlund, Astronmical Observatory, Juliane Maries Vej 30, DK-2100
Copenhagen O, Denmark. aake@astro.ku.dk
Brief Description of Application:
The equations of magnetohydrodynamics are solved on a 3 dimensional grid, using a 6th order finite difference method and a 3rd order time evolution. Applications include a variety of astrophysical problems where magnetic fields play an important role in the dynamics of the plasma.
Number of Lines of Code: Around 10000
Target Platforms and HPF Compilers Used:
IBM SP2, Cray T3E. Compilers: pghpf. Also run on single processors in SGI machines using f90 compilers.
Coding Styles (data decompositions, computational methods):
The computational domain is a fixed grid, so we simply use a block distribution over the last dimension. A set of differencing and interpolation operators is used to calculate spatial derivatives and interpolate between neighboring points on the staggered grid. These operators are all simple stencils with constant weights on each point.
Extrinsic Interfaces Used (and reasons):
Performance Information, if Available (including any possible comparisons to MPI and/or OpenMP):
Basic stencils run at around 80 Mflops/PE on T3E in non-distributed dimensions,
and around 40 Mflops/PE for the distributed dimension. Performance grows linearly
with number of PE's. Single processor performance is somewhat better on the IBM SP2.
(See also http://www.tac.dk/~ossi/projects/cineca/tuneT3E.html)
Please comment on any aspects of the application that might be interesting, including any problems using HPF effectively:
There are basically two things which have required extensive recoding to get acceptable performance out of the pghpf compiler. The first one is the remapping of array-valued function calls to subroutines, and the accompanying extra copying of data. The second point is the low performance of simple cshift calls.