VTK-m

As exascale simulations generate data, scientists must extract information and understand their results. One of the primary mechanisms for understanding these results is producing visualizations that can be viewed and manipulated. The VTK-m project is developing and deploying a scientific visualization library for exascale machines. This library can be used directly by simulation codes or by other visualization products, and VTK-m is embedded in other Exascale Computing Project (ECP) solutions and is the sole project providing support for exascale architectures. VTK-m supports features such as the shared-memory parallelism available on many-core CPUs and GPUs by redeveloping, implementing, and supporting necessary visualization algorithms.

Project Details

One of the biggest recent changes in high-performance computing is the increasing use of accelerators. Accelerators contain processing cores that independently are inferior to a core in a typical CPU, but these cores are replicated and grouped so that their aggregate execution provides a very high computation rate at a much lower power. Current and future CPU processors also require much more explicit parallelism. Each successive version of the hardware packs more cores into each processor, and technologies such as hyperthreading and vector operations require even more parallel processing to leverage each core’s full potential.

For more than 20 years, the scientific visualization community has been building scalable tools that enable scientists to visualize the results of their simulations. However, these tools are currently based on a message-passing programming model that will not scale as the concurrency increases, making them unsuitable for exascale architectures in their current form.

The VTK-m project addresses this challenge by providing the core capabilities to perform scientific visualization on exascale architectures, which can then be used within current tools, used by new libraries for in situ processing, or used directly by simulation codes. This fills the critical feature gap of performing efficient visualization and analysis on many-core CPU and GPU architectures.

The VTK-m team is providing general-purpose scientific visualization software for exascale architectures that supports shared memory parallelism and fine-grained concurrency. The team is focused on providing abstract models for data and execution that can be applied to a variety of algorithms across many different processor architectures along with necessary visualization algorithm implementations. The results of this project will be delivered in tools currently used around the world today, such as ParaView and VisIt, as well as in new tools, such as Ascent, and in a stand-alone form.

Principal Investigator(s):

Ken Moreland, Sandia National Laboratories

Collaborators:

Sandia National Laboratories, Oak Ridge National Laboratory, Los Alamos National Laboratory, University of Oregon, Kitware Inc.

Progress to date

  • The ECP has been diligently building the features of the VTK-m visualization library to include numerous visualization features, including surfacing algorithms, such as external faces, normal generation, and contouring; multiblock and ghost cell management; geometry transformations; field compression; particle advection and associated flow analysis; connected component identification; and a self-contained rendering library.
  • VTK-m was demonstrated to perform well on numerous pre-exascale hardware platforms, including the current Summit supercomputer. Recent additions to VTK-m incorporate the Kokkos portability library to rapidly provide performant ports to new exascale platforms and OpenMP support.
  • Contouring, one of the most fundamental algorithms for scientific visualization, was extended to handle all 3D cell types. This enables VTK-m to create isosurface contours for unstructured grids of zoo cells. Optimizations for contouring structured grids were also added, making the speed of VTK-m’s contouring one of the fastest available.
  • In collaboration with the ECP/ALPINE team and the Advanced Simulation and Computing/Advanced Technology Development and Mitigation team, pattern recognition for image data based on Moments was added. Based on a serial algorithm, the VTK-m implementation was extended to take advantage of all the hardware accelerators supported by VTK-m.
  • In collaboration with the ECP/ALPINE team, contour tree generation was added. This topological algorithm characterizes the structure of a scalar field in a mesh and can assist in automatic feature identification, which is primary for in situ visualization.

National Nuclear Security Administration logo U.S. Department of Energy Office of Science logo