The EPEEC Programming Guidelines for Parallel Applications are aimed at increasing the productivity of application developers, and are based on parallel programming best practices used by expert developers in the HPC community.
The document establishes a clear path to get application codes suited for parallelization and exploitation of heterogeneous resources. It introduces the EPEEC methodological framework, which splits the parallelization process into three steps:
- Prepare the code for parallelism: to code the application in such a way that reduces the cost/effort of parallel software development and maintenance.
- Create a first parallel version of your code: to develop a parallel version of existing sequential code that runs faster.
- Optimize your parallel code: to fine-tune the parallel code to obtain peak performance of the target hardware platform.
In addition, the guidelines include a set of rules for each step. These sets of rules are presented jointly with objective metrics to measure the progress during the development process. Each rule is given a unique identifier and mapped to EPEEC programming models.