skip to main content

DOE PAGESDOE PAGES

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

This study 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:
 [1] ;  [2] ;  [3] ; ORCiD logo [2]
  1. Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
  2. Univ. of Utah, Salt Lake City, UT (United States)
  3. Univ. of Pittsburgh, Pittsburgh, PA (United States)
Publication Date:
Report Number(s):
LLNL-JRNL-665611
Journal ID: ISSN 0164-1212; 787107
Grant/Contract Number:
AC52-07NA27344
Type:
Accepted Manuscript
Journal Name:
Journal of Systems and Software
Additional Journal Information:
Journal Volume: 125; Journal Issue: C; Journal ID: ISSN 0164-1212
Publisher:
Elsevier
Research Org:
Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
Sponsoring Org:
USDOE National Nuclear Security Administration (NNSA)
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; Domain-specific language embedded in C++; GPGPU
OSTI Identifier:
1440722
Alternate Identifier(s):
OSTI ID: 1398661