Nebo: An efficient, parallel, and portable domain-specific language for numerically solving partial differential equations

Academic Article

Abstract

  • This paper presents Nebo, a declarative domain-specific language embedded in C++ for discretizing partial differential equations for transport phenomena on multiple architectures. Application programmers use Nebo to write code that appears sequential but can be run in parallel, without editing the code. Currently Nebo supports single-thread execution, multi-thread execution, and many-core (GPU-based) execution. With single-thread execution, Nebo performs on par with code written by domain experts. With multi-thread execution, Nebo can linearly scale (with roughly 90% efficiency) up to 12 cores, compared to its single-thread execution. Moreover, Nebo's many-core execution can be over 140x faster than its single-thread execution.
  • Authors

    Published In

    Digital Object Identifier (doi)

    Author List

  • Earl C; Might M; Bagusetty A; Sutherland JC
  • Start Page

  • 389
  • End Page

  • 400
  • Volume

  • 125