As systems move from the current 10,000-100,000 cores to anticipated numbers of threads exceeding ten million, a key issue is how best to represent multi-level concurrency in the programming environment. Pure MPI may still be useful and efficient at the inter-node level but with core counts per node likely to reach into the hundreds, multi-threading using models such as OpenMP and OpenCL is also required. PGAS languages are attractive in providing the programmer with a high-level abstraction but require considerable compiler and run-time support to be efficiently implemented.
The Shock-Boundary Layer Interaction (SBLI) CFD code was implemented in Coarray Fortran by Ashby and Reid.
- Migrating a Scientific Application from MPI to Coarrays, Ashby, J.V. and Reid, J.K., Proceedings of the Cray User Group Conference, 2008
Evaluations on the performance of the Co-Array Fortran version on various systems were also performed. Performance on HECToR and ARCHER has been poor and results were presented as a poster at PGAS 2014 attracting considerable sympathy from others with a similar experience.
- Performance of Coarray Fortran vs MPI in a CFD Application, M. Ashworth, at the 8th International Conference on Partitioned Global Address Space Programming Models (PGAS 2014), 7th-10th October 2014, http://nic.uoregon.edu/pgas14