Notified access in coarray-based hydrodynamics applications on many-core architectures: Design and performance - Fanfarillo, Alessandro; Del Vento, Davide (Parallel computing, 2018)
•Comparison of Fortran 2008 vs. Fortran 2018 synchronization mechanisms using Hydrodynamics mini-app (CloverLeaf) on many-core.•Comparison of Notified Access vs. Fortran 2008/Fortran 2018 synchronization mechanisms on many-core.•Notified Access provide always the best performance for CloverLead running on KNL. With the increasing availability of the Remote Direct Memory Access (RDMA) support in computer networks, the so called Partitioned Global Address Space (PGAS) model has evolved in the last few years. Although there are several cases where a PGAS approach can easily solve difficult message passing situations, like in particle tracking and adaptive mesh refinement applications, the producer-consumer pattern, usually adopted in task-based parallelism, can only be implemented inefficiently because of the separation between data transfer and synchronization (which is usually unified in message passing programming models). In this paper, we provide two contributions: (1) we propose an extension for the Fortran language that provides the concept of Notified Access by associating regular coarray variables with event variables. (2) We demonstrate that the MPI extension proposed by foMPI for Notified Access can be used effectively to implement the same concept in a PGAS run-time library like OpenCoarrays. Moreover, for a hydrodynamics mini-application, we found that Fortran 2018 events perform always better than Fortran 2008 sync statements on many-core processors. We finally show how the proposed Notified Access can improve the performance even more.