What is EasyPAP?

EasyPAP aims at providing students with an easy-to-use programming environment to learn parallel programming. The idea is to parallelize sequential computations on 2D matrices (which are images, most of the time) or 3D meshes over multicore and GPU platforms. At each iteration, the current data can be visualized, allowing to visually check the correctness of the computation method. Multiple variants can easily been developed (e.g. sequential, OpenMP, MPI, OpenCL, CUDA, etc.) and compared. EasyPAP is written in C, uses the SDL library for fast 2D graphics as well as OpenGL for 3D rendering, and is available on Linux and MacOS platforms. Most of the parameters can be specified as command line arguments, which facilitates automation of experiments through scripts:

  • size of input data, image/mesh file to be loaded;
  • kernel to use (e.g. blur, pixelize, mandelbrot, life, …);
  • variant to use (e.g. seq, omp, omp_task, pthread, mpi, ocl, …);
  • code optimization to use (e.g. default, AVX, MIPP, …)
  • interactive mode / performance mode;
  • monitoring mode;
  • tracing mode;
  • and much more!


Download the Getting Started with EasyPAP Guide!

Download (students)

The EasyPAP Git repository is hosted by Gitlab.com. Click the Download Button and follow instructions for cloning the Git repository.

Note: After cloning the Git repository, you may also want to download a set of PNG files to be used as input to some 2D kernels. Download images.zip file (~40MB), and extract files under your easypap/images/ subdirectory. You may as well download a set of extended OBJ files to be used as input to 3D kernels: mesh.zip (to be extracted under your easypap/data/ subdirectory).

EasyPAP for HPC practices (teachers)

If you are a CS teacher interested in using EasyPAP for your practice sessions, please contact us (see below) and we will grant you access to the full featured EasyPAP repository which contains suggested AVX/MIPP, Pthread/OpenMP, OpenCL/CUDA and MPI implementations for many kernels. You are obviously welcome to extend this database with new kernels or additional features!


The EasyPAP software was originally developed by the following people:

Many great extensions were brought by enthusiastic contributors:

Contact: Raymond Namyst, Pierre-André Wacrenier

Publications, Talks