Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published February 28, 2013 | Version v1
Working paper Open

Parallelization Using a PGAS Language such as X10 in HYDRO and TRITON

Creators

  • 1. Commissariat à l'énergie atomique et aux énergies alternatives – CEA/DEN/DM2S/STMF/LGLS 91191 Gif-sur-Yvette, France

Description

In this whitepaper, after an introduction to X10, one of the PGAS languages, we describe the different parallelization paradigms used to write versions of two computing codes in this language. For HYDRO, a 2D hydrodynamics code, we started from the original sequential C version. We keep the global 1D alternating direction method, thanks to the logical global addressing scheme for distributed array in PGAS languages. Remote activities (or threads) of X10 were used to distribute work tasks between the different nodes. Local activities of X10 allow us to distribute local computations between cores on the same node. The only communication steps are the computation of the global time step and a global 2D array transposition. So we do not think that this scheme will be scalable on a large set of nodes. TRITON, a simulation platform that performs 3D hydrodynamics computations, was parallelized using a standard 3D domain decomposition method. We implement a specialized distributed array class, by extending the standard X10 array class to transparently handle ghost cells. Again, local and remote activities distribute computing tasks on all the cores. This scheme should show better scalability behaviour. These code porting actions show the flexibility and ease of programming of PGAS languages, even as the absolute performances of our PGAS implementations cannot rival the efficiency of current MPI implementations.

Files

Parallelization_Using_a_PGAS_Language_such_as_X10_in_HYDRO_and_TRITON.pdf

Files (550.6 kB)

Additional details

Funding

PRACE-2IP – PRACE - Second Implementation Phase Project 283493
European Commission