EPEEC releases Programming Guidelines for Parallel Applications
The work towards a highly productive programming environment for heterogeneous exascale computing carried out by the European project EPEEC has reached an important milestone with the publication of the EPEEC Programming Guidelines for Parallel Applications. These recommendations are relevant to application developers interested in high productivity, as they are aimed at facilitating the compilers’ work and improving the applications’ performance in terms of execution time. These are compatible with state-of-the-art profiling methodology and tools, such as those defined and leveraged in the POP-2 project. “The EPEEC guidelines will allow to increase the programmer’s productivity while developing modern applications,” said Antonio J Peña, Coordinator of EPEEC and Lead of the Accelerators and Communications for HPC Team at Barcelona Supercomputing Center (BSC). The EPEEC guidelines contribute to the project goals by establishing a clear path to get application codes suited for parallelization and exploitation of heterogeneous resources. Additionally, the guidelines are backed up on the Appentra Parallelware Analyzer tool, which analyzes the application code and provides recommendations and opportunities to the program developers. The document presents a high-productivity approach for the development of high-performance applications based on parallel programming best practices used by expert developers in the High Performance Computing (HPC) community. It introduces the EPEEC methodological framework, which splits the parallelization process into three steps: 1. Prepare the code for parallelism: to code the application in such a way that reduces the cost/effort of parallel software development and maintenance. 2. Create a first parallel version of your code: to develop a parallel version of existing sequential code that runs faster. 3. Optimize your parallel code: to fine-tune the parallel code to obtain peak performance of the target hardware platform. In addition to high-productivity and the development of a high-performance programming environment, EPEEC’s goals include the efficient and energy-aware management of hardware heterogeneity, both in terms of processing elements and memory subsystems, further favouring coding productivity. The EPEEC Programming Guidelines for Parallel Applications are available on the project’s website: https://epeec-project.eu/results/programming-guidelines
Keywords
HPC, Programming environment, Heterogeneous computing, Exascale computing, Parellel Applications, EPEEC