Abstract
A common operation in scientific visualization is to compute and render a contour of a data set. Given a function of the form f : R^d -> R, a level set is defined as an inverse image f^-1(h) for an isovalue h, and a contour is a single connected component of a level set. The Reeb graph can then be defined to be the result of contracting each contour to a single point, and is well defined for Euclidean spaces or for general manifolds. For simple domains, the graph is guaranteed to be a tree, and is called the contour tree. Analysis can then be performed on the contour tree in order to identify isovalues of particular interest, based on various metrics, and render the corresponding contours, without having to know such isovalues a priori. This code is intended to be the first data-parallel algorithm for computing contour trees. Our implementation will use the portable data-parallel primitives provided by Nvidia’s Thrust library, allowing us to compile our same code for both GPUs and multi-core CPUs. Native OpenMP and purely serial versions of the code will likely also be included. It will also be extended to provide a hybrid data-parallel /
More>>
- Developers:
-
Sewell, Christopher [1] ; Fasel, Patricia [1] ; Carr, Hamish [2] ; Weber, Gunther [3]
- LANL
- University of Leeds
- LBNL
- Release Date:
- 2017-01-03
- Project Type:
- Open Source, Publicly Available Repository
- Software Type:
- Scientific
- Licenses:
-
Other (Commercial or Open-Source): https://gitlab.kitware.com/vtk/vtk-m/blob/master/LICENSE.txt
- Sponsoring Org.:
-
USDOEPrimary Award/Contract Number:AC52-06NA25396
- Code ID:
- 4972
- Site Accession Number:
- 7310
- Research Org.:
- Los Alamos National Laboratory (LANL), Los Alamos, NM (United States)
- Country of Origin:
- United States
Citation Formats
Sewell, Christopher, Fasel, Patricia, Carr, Hamish, and Weber, Gunther.
Hybrid Parallel Contour Trees, Version 1.0.
Computer Software.
https://gitlab.kitware.com/vtk/vtk-m.
USDOE.
03 Jan. 2017.
Web.
doi:10.11578/dc.20171025.1884.
Sewell, Christopher, Fasel, Patricia, Carr, Hamish, & Weber, Gunther.
(2017, January 03).
Hybrid Parallel Contour Trees, Version 1.0.
[Computer software].
https://gitlab.kitware.com/vtk/vtk-m.
https://doi.org/10.11578/dc.20171025.1884.
Sewell, Christopher, Fasel, Patricia, Carr, Hamish, and Weber, Gunther.
"Hybrid Parallel Contour Trees, Version 1.0." Computer software.
January 03, 2017.
https://gitlab.kitware.com/vtk/vtk-m.
https://doi.org/10.11578/dc.20171025.1884.
@misc{
doecode_4972,
title = {Hybrid Parallel Contour Trees, Version 1.0},
author = {Sewell, Christopher and Fasel, Patricia and Carr, Hamish and Weber, Gunther},
abstractNote = {A common operation in scientific visualization is to compute and render a contour of a data set. Given a function of the form f : R^d -> R, a level set is defined as an inverse image f^-1(h) for an isovalue h, and a contour is a single connected component of a level set. The Reeb graph can then be defined to be the result of contracting each contour to a single point, and is well defined for Euclidean spaces or for general manifolds. For simple domains, the graph is guaranteed to be a tree, and is called the contour tree. Analysis can then be performed on the contour tree in order to identify isovalues of particular interest, based on various metrics, and render the corresponding contours, without having to know such isovalues a priori. This code is intended to be the first data-parallel algorithm for computing contour trees. Our implementation will use the portable data-parallel primitives provided by Nvidia’s Thrust library, allowing us to compile our same code for both GPUs and multi-core CPUs. Native OpenMP and purely serial versions of the code will likely also be included. It will also be extended to provide a hybrid data-parallel / distributed algorithm, allowing scaling beyond a single GPU or CPU.},
doi = {10.11578/dc.20171025.1884},
url = {https://doi.org/10.11578/dc.20171025.1884},
howpublished = {[Computer Software] \url{https://doi.org/10.11578/dc.20171025.1884}},
year = {2017},
month = {jan}
}