Optimisation of a spline based Eulerian--Lagrangian transport solver
AbstractConsider solute transport in saturated porous media. Eulerian-Lagrangian methods provide efficient numerical solutions with minimal numerical dispersion. We discuss the optimisation and parallelisation of a serial, spline based Eulerian-Lagrangian code (ELM2D , Fortran 90) on a 64 bit NEC SX-5 platform to support high-resolution numerical experiments. The aim was to reduce execution times by an order of magnitude whilst maintaining numerical accuracy. Profiling analysis indicated potential inefficiencies in the spline and diffusion subsystems of the code. Vectorisation of these subsystems achieved more than an order of magnitude speed increase. Use of either OpenMP or SX-5 microtasking directives was also effective in further reducing computational expense. Benchmarking optimised solutions against 32 bit serial solutions generated on a different platform indicated good numerical agreement of overall solute distributions and plume spatial moments for strongly heterogeneous problems with O(10 7 ) nodes. More than twenty-fold reduction in SX-5 execution times was achieved through vectorisation and parallelisation, but came at the cost of increasing memory demands. A user configurable striping parameter was introduced to the algorithm to determine the in-core storage, yielding a trade-off between execution speed and resource demand.
Proceedings Computational Techniques and Applications Conference