Advertisement

Design and Performance of the OP2 Library for Unstructured Mesh Applications

  • Carlo Bertolli
  • Adam Betts
  • Gihan Mudalige
  • Mike Giles
  • Paul Kelly
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7155)

Abstract

OP2 is an “active” library framework for the solution of unstructured mesh applications. It aims to decouple the scientific specification of an application from its parallel implementation to achieve code longevity and near-optimal performance by re-targeting the back-end to different multi-core/many-core hardware. This paper presents the design of the OP2 code generation and compiler framework which, given an application written using the OP2 API, generates efficient code for state-of-the-art hardware (e.g. GPUs and multi-core CPUs). Through a representative unstructured mesh application we demonstrate the capabilities of the compiler framework to utilize the same OP2 hardware specific run-time support functionalities. Performance results show that the impact due to this sharing of basic functionalities is negligible.

Keywords

Unstructured Mesh Partition Size Abstract Syntax Tree CUDA Implementation Compiler Framework 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
    The amd fusion family of apus (2011), http://sites.amd.com/us/fusion/apu/Pages/fusion.aspx
  3. 3.
    Burgess, D.A., Crumpton, P.I., Giles, M.B.: A parallel framework for unstructured grid solvers. In: Proc. of the 2nd European Computational Fluid Dynamics Conf., pp. 391–396. John Wiley and Sons, Germany (1994)Google Scholar
  4. 4.
    Chafi, H., DeVito, Z., Moors, A., Rompf, T., Sujeeth, A.K., Hanrahan, P., Odersky, M., Olukotun, K.: Language virtualization for heterogeneous parallel computing. In: Proc. of the OOPSLA 2010 Applications, pp. 835–847. ACM, USA (2010)Google Scholar
  5. 5.
    DeVito, Z., Joubert, N., Medina, M., Barrientos, M., Oakley, S., Alonso, J., Darve, E., Ham, F., Hanrahan, P.: Liszt: Programming mesh based pdes on heterogeneous parallel platforms (October 2010), http://psaap.stanford.edu
  6. 6.
    Giles, M.B.: Hydra (1998-2002), http://people.maths.ox.ac.uk/gilesm/hydra.html
  7. 7.
    Giles, M.B., Ghate, D., Duta, M.C.: Using automatic differentiation for adjoint CFD code development. Computational Fluid Dynamics J. 16(4), 434–443 (2008)Google Scholar
  8. 8.
    Giles, M.B., Mudalige, G.R., Sharif, Z., Markall, G., Kelly, P.H.J.: Performance analysis of the op2 framework on many-core architectures. SIGMETRICS Perform. Eval. Rev. 38, 9–15 (2011)CrossRefGoogle Scholar
  9. 9.
    Howes, L.W., Lokhmotov, A., Donaldson, A.F., Kelly, P.H.J.: Deriving Efficient Data Movement from Decoupled Access/Execute Specifications. In: Seznec, A., Emer, J., O’Boyle, M., Martonosi, M., Ungerer, T. (eds.) HiPEAC 2009. LNCS, vol. 5409, pp. 168–182. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  10. 10.
    Schordan, M., Quinlan, D.: A Source-To-Source Architecture for User-Defined Optimizations. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 214–223. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Carlo Bertolli
    • 1
  • Adam Betts
    • 1
  • Gihan Mudalige
    • 2
  • Mike Giles
    • 2
  • Paul Kelly
    • 1
  1. 1.Department of ComputingImperial CollegeLondonUK
  2. 2.Oxford e-Research CentreUniversity of OxfordUK

Personalised recommendations