2016
DOI: 10.1109/tvcg.2015.2467449
|View full text |Cite
|
Sign up to set email alerts
|

Diderot: a Domain-Specific Language for Portable Parallel Scientific Visualization and Image Analysis

Abstract: Many algorithms for scientific visualization and image analysis are rooted in the world of continuous scalar, vector, and tensor fields, but are programmed in low-level languages and libraries that obscure their mathematical foundations. Diderot is a parallel domain-specific language that is designed to bridge this semantic gap by providing the programmer with a high-level, mathematical programming notation that allows direct expression of mathematical concepts in code. Furthermore, Diderot provides parallel p… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
28
0

Year Published

2017
2017
2021
2021

Publication Types

Select...
5
3

Relationship

1
7

Authors

Journals

citations
Cited by 33 publications
(28 citation statements)
references
References 42 publications
0
28
0
Order By: Relevance
“…Σ-SPL [15] is an extension that features index mappings similar to the FlexiblyIndexed nodes in GEM. EIN [9] is another tensor language, and the intermediate representations of Diderot [10,24]. It uses a static single assignment (SSA) form, while GEM is a simple expression language that cannot express control flow.…”
Section: Related Workmentioning
confidence: 99%
“…Σ-SPL [15] is an extension that features index mappings similar to the FlexiblyIndexed nodes in GEM. EIN [9] is another tensor language, and the intermediate representations of Diderot [10,24]. It uses a static single assignment (SSA) form, while GEM is a simple expression language that cannot express control flow.…”
Section: Related Workmentioning
confidence: 99%
“…We further use Git [45] as the version control system by utilizing the functionality provided by the libgit2 library [53]. The current version of our application supports Diderot [44] as a programming language specifically designed for the visualization domain, as well as C++ and GLSL. While Diderot code is commonly manageable within a single source file, C++ and GLSL code can become quite large.…”
Section: Methodsmentioning
confidence: 99%
“…Our system was designed to flexibly support multiple back ends. It supports C++ and GLSL code as generalpurpose programming languages, as well as Diderot [44], a domain-specific language (DSL) specifically designed for the development of scientific visualization algorithms. While C++ and GLSL have been utilized in many visualization applications for possible performance gains, DSLs provide benefits in usability and expressiveness, while reducing the complexity of the algorithm's source code with efficient syntax.…”
Section: System Designmentioning
confidence: 99%
“…This list does not fairly describe the sophisticated approaches to high-performance computing [23] and computational scheduling [26,33]. We build on Diderot, a visualization DSL limited to regular grids [8,19,20], but distinguished by offering the mathematical abstraction of a C k tensor field. Our current work extends how Diderot fields are defined to include FEM, so that existing Diderot programs can be used with minimal changes, while introducing a new abstraction, a mesh position, which supports the convenient expression of previous methods of moving through the geometry of a curved FEM mesh [11,25].…”
Section: Related Workmentioning
confidence: 99%
“…We present preliminary work on extending the open-source compiler for a scientific visualization DSL [8,19,20], previously limited to regular grids, to also work on higher-order FEM data. Our long-term goal is to connect previous FEM visualization methods [11,18,25,[27][28][29][30][31][32] by simplifying how they can be expressed and combined in working code.…”
Section: Introductionmentioning
confidence: 99%