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:
- Gihan Mudalige, Ben Spencer at University of Oxford
- Carlo Bertolli, David Ham, Paul Kelly and Graham Markall at Imperial College
- Yoon Ho, Leigh Lapworth and David Radford at Rolls-Royce
- Jamil Appa and Pierre Moinier at BAE Systems
- Tom Bradley and Jon Cohen at NVIDIA
- Nick Hills at University of Surrey
Other collaborators are very welcome, either as developers of OP2, or as users
to provide feedback on the software, documentation, etc.
OP2
Presentations
- "A framework for parallel unstructured grid applications on GPUs",
SIAM conference on Parallel Processing for Scientific Computing, Seattle, Feb 26, 2010
(PDF)
- "Performance Analysis of the OP2 Framework on Many-core Architectures",
Supercomputing SC10, New Orleans, Nov 13-19, 2010
(pptx)
- "OP2: an open-source library for unstructured grid applications",
IMA workshop on HPC and Emerging Architectures, Minnesota, Jan 10-14, 2011
(PDF)
- "Optimising the OP2 Framework for GPU Architectures",
MRSC 2011, Bristol, April 12, 2011
(PDF)
- "OP2 -- an open-source library for unstructured grid applications",
ENUMATH 2011, Leicester, Sept 7, 2011
(PDF)
Papers
-
"Performance Analysis of the OP2 Framework on Many-core Architectures",
MB Giles, GR Mudalige, Z Sharif, G Markall, PHJ Kelly,
ACM SIGMETRICS Performance Evaluation Review, 38(4):9-15, March 2011
(PDF)
-
"Performance Analysis and Optimisation of the OP2 Framework on Many-core Architectures",
MB Giles, GR Mudalige, Z Sharif, G Markall, PHJ Kelly, to appear in Computer Journal
(PDF)
-
"Design and Performance of the OP2 Library for Unstructured Mesh Applications",
C Bertolli, A Betts, GR Mudalige, MB Giles, PHJ Kelly, Euro-Par 2001 Parallel Processing Workshops, Lecture Notes in Computer Science, Springer, 2011
(PDF)
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.
- P.I. Crumpton and M.B. Giles.
`Multigrid aircraft computations using the OPlus parallel library'.
in Parallel Computational Fluid Dynamics: Implementations and
Results Using Parallel Computers, 339-346.
A. Ecer, J. Periaux, N. Satofuka, and S. Taylor, editors,
North-Holland, 1996.
(PDF)
- D.A. Burgess, P.I. Crumpton, and M.B. Giles.
`A parallel framework for unstructured grid solvers'.
In Computational Fluid Dynamics '94: Proceedings of the Second
European Computational Fluid Dynamics Conference,
pages 391-396. S. Wagner, E.H. Hirschel, J. Periaux, and R. Piva,
editors. John Wiley and Sons, 1994.
(PDF)
- OPlus User Guide (PDF)
- draft paper/report (PDF) on internals within OPlus
- an old webpage
Other useful links