Controller and EPSILOD

Controller

Controller is a heterogeneous parallel programming model implemented as a C99 library.
On the one hand, it presents a simple and unified programming interface to generate portable host/coordination codes. On the other hand, it allows the encapsulation of several versions of the same kernel, from generic implementations to versions optimized for specific platforms (device type, vendor, or family) using native or vendor-specific low-level programming models or tools.

Currently, we have developed backends and a runtime system to coordinate code for CPUs (supported by OpenMP), GPUs (supported by CUDA, HIP, or OpenCL), and Intel FPGAs (using OpenCL for FPGAs).

The current release of the Controllers project can be found in GitLab:
https://gitlab.com/trasgo-group-valladolid/controllers

Selected publications

EPSILOD

Iterative stencil computations are widely used in numerical simulations. They
present a high degree of parallelism, high locality and mostly-coalesced memory
access patterns. EPSILOD (Efficient Parallel Skeleton for generic Iterative
Stencil Computations) is a high-productivity parallel programming skeleton for iterative stencil computations on distributed multi-GPUs, of the same or different vendors that support any type of n-dimensional geometric stencils of any order. It is built on top of Controller, exploiting it as a functional and performance portability layer. It uses an abstract specification of the stencil pattern (neighbors and weights) to internally derive the data partition, synchronization, and communications. Computation is split to better overlap with communications, leading to a good strong and weak scalability for platforms with both homogeneous and heterogeneous types of GPUs.

Selected publications

  • EPSILOD: efficient parallel skeleton for generic iterative stencil computations in distributed GPUs. M. de Castro, I. Santamaria-Valenzuela, Y. Torres, A. Gonzalez-Escribano, D.R. Llanos. The Journal of Supercomputing, 79, pag. 9409-9442, Springer, 2023. DOI: 10.1007/s11227-022-05040-y
  • Towards an Efficient Parallel Skeleton for Generic Iterative Stencil Computations in Distributed GPUs. M. de Castro, I. Santamaria-Valenzuela, S. Miguel-Lopez, Y. Torres, A. Gonzalez-Escribano. SC21 — ACM/IEEE Conference on High Performance Networking and Computing. St. Louis, Missouri (USA), 2021

Artifact releases

Artifact releases are stored in the gitlab repository of the Controllers project. They contain the Controller and Hitmap versions used, the software developed for the artifact, and one or more assets containing other tools and helper programs, experimentation scripts, and results obtained.
See the README files for instructions to compile the software, descriptions of the experimentation, etc.

Artifact: EPSILOD: Skeleton for Generic Stencil (SC 2021)

This software was used for the experimental study submitted to the poster session of SC’21.

https://gitlab.com/trasgo-group-valladolid/controllers/-/releases/artifact-PSS-SC21v1

Artifact: FPGAs backend (2020)

This software contains the Controller and Hitmap versions that were used for the experimental tests presented at SC’20.

Tested with Intel AOC v19-v20. Containing Controller, test programs, and experimental data. Artifact v5 (download)