OP2 project page

The OP2 project aims to develop an open-source framework for the execution of unstructured grid applications on clusters of GPUs or multi-core CPUs. Although OP2 is designed to look like a conventional library, the implementation uses source-source translation to generate the appropriate back-end code for the different target platforms.

Funding for OP2 development is coming from: Collaborators include: Other collaborators are very welcome, either as developers of OP2, or as users to provide feedback on the software, documentation, etc.


OP2

Presentations

Papers


Flamingo auto-tuning software

Flamingo was initially developed by Ben Spencer as an undergraduate computer science project, and then enhanced during a summer internship funded by EPSRC.

It addresses the challenge of determining the optimal value for parameters in various codes. For example, in OP2, the GPU implementation for each parallel loop has a mini-partition size and a thread block size, and it is not clear a priori what the best values are.

Particular features of Flamingo are its flexibility, enabling it to be used in a wide variety of applications, and its efficiency, using knowledge about parameter independence to greatly reduce the scope of its exhaustive serach optimisation.


OPlus papers and documentation

OP2 is based on the ideas from the OPlus library for the parallel execution of unstructured grid applications on distributed-memory clusters. The original library development was led by Paul Crumpton, and it was subsequently ported to MPI and further improved by Nick Hills.


Other useful links