skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

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

Abstract

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:
Research Org.:
Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
Sponsoring Org.:
USDOE National Nuclear Security Administration (NNSA)
OSTI Identifier:
1440722
Alternate Identifier(s):
OSTI ID: 1398661
Report Number(s):
LLNL-JRNL-665611
Journal ID: ISSN 0164-1212; 787107
Grant/Contract Number:  
AC52-07NA27344
Resource Type:
Journal Article: 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
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; Domain-specific language embedded in C++; GPGPU

Citation Formats

Earl, Christopher, Might, Matthew, Bagusetty, Abhishek, and Sutherland, James C. Nebo: An efficient, parallel, and portable domain-specific language for numerically solving partial differential equations. United States: N. p., 2016. Web. doi:10.1016/j.jss.2016.01.023.
Earl, Christopher, Might, Matthew, Bagusetty, Abhishek, & Sutherland, James C. Nebo: An efficient, parallel, and portable domain-specific language for numerically solving partial differential equations. United States. doi:10.1016/j.jss.2016.01.023.
Earl, Christopher, Might, Matthew, Bagusetty, Abhishek, and Sutherland, James C. Tue . "Nebo: An efficient, parallel, and portable domain-specific language for numerically solving partial differential equations". United States. doi:10.1016/j.jss.2016.01.023. https://www.osti.gov/servlets/purl/1440722.
@article{osti_1440722,
title = {Nebo: An efficient, parallel, and portable domain-specific language for numerically solving partial differential equations},
author = {Earl, Christopher and Might, Matthew and Bagusetty, Abhishek and Sutherland, James C.},
abstractNote = {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.},
doi = {10.1016/j.jss.2016.01.023},
journal = {Journal of Systems and Software},
number = C,
volume = 125,
place = {United States},
year = {Tue Jan 26 00:00:00 EST 2016},
month = {Tue Jan 26 00:00:00 EST 2016}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record

Save / Share: