• DocumentCode
    1916031
  • Title

    PyOP2: A High-Level Framework for Performance-Portable Simulations on Unstructured Meshes

  • Author

    Rathgeber, Florian ; Markall, Graham R. ; Mitchell, L. ; Loriant, Nicolas ; Ham, David A. ; Bertolli, Carlo ; Kelly, Paul H. J.

  • Author_Institution
    Dept. of Comput., Imperial Coll. London, London, UK
  • fYear
    2012
  • fDate
    10-16 Nov. 2012
  • Firstpage
    1116
  • Lastpage
    1123
  • Abstract
    Emerging many-core platforms are very difficult to program in a performance portable manner whilst achieving high efficiency on a diverse range of architectures. We present work in progress on PyOP2, a high-level embedded domain-specific language for mesh-based simulation codes that executes numerical kernels in parallel over unstructured meshes. Just-in-time kernel compilation and parallel scheduling are delayed until runtime, when problem-specific parameters are available. Using generative metaprogramming, performance portability is achieved, while details of the parallel implementation are abstracted from the programmer. PyOP2 kernels for finite element computations can be generated automatically from equations given in the domain-specific Unified Form Language. Interfacing to the multi-phase CFD code Fluidity through a very thin layer on top of PyOP2 yields a general purpose finite element solver with an input notation very close to mathematical formulae. Preliminary performance figures show speedups of up to 3.4× compared to Fluidity´s built-in solvers when running in parallel.
  • Keywords
    computational fluid dynamics; mathematics computing; mesh generation; parallel programming; program compilers; scheduling; specification languages; Fluidity CFD code; PyOP2 language; computational fluid dynamics; domain-specific unified form language; finite element computation; generative metaprogramming; high-level embedded domain-specific language; just-in-time kernel compilation; many-core platform; parallel implementation; parallel scheduling; performance portability; performance-portable simulation; unstructured mesh; code generation; domain-specific languages; finite-element methods; generative metaprogramming; high-level frameworks; just-in-time compilation; performance portability;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Computing, Networking, Storage and Analysis (SCC), 2012 SC Companion:
  • Conference_Location
    Salt Lake City, UT
  • Print_ISBN
    978-1-4673-6218-4
  • Type

    conf

  • DOI
    10.1109/SC.Companion.2012.134
  • Filename
    6495916