Viskores Project Proposal
HPSF TAC Meeting
November 14, 2024
ORNL IS MANAGED BY UT-BATTELLE LLC �FOR THE US DEPARTMENT OF ENERGY
1
Note about Viskores transition
The software referred to as Viskores is in the process of being transformed from VTK-m to Viskores. This process is ongoing.
Much of the technology I talk about today was part of the VTK-m development.
When I say something is part of Viskores, I mean it is a part of VTK-m that becomes Viskores.
2
Viskores: Visualization on Accelerators
Contouring and features
Particle Density
Rendering
Advection
and flow
And much more…
3
Distributed
Parallelism
Viskores
4
Viskores Forms the Backbone of HPC Visualization
Viskores
5
Viskores Integrated into Essential SciVis Tools Like ParaView and VisIt
Using Viskores in ParaView
Using Viskores in VisIt
6
Contour
Streams
Clip
Render
CUDA
Xeon Phi
CPU
AMD ROCm
Intel GPU
Surface
Normals
Ghost Cells
Warp
…
Viskores
7
8
Alignment between HPSF’s and Viskores’ Missions
GPUs and other processors that support many threads are an important component of modern HPC systems. Such accelerator processors are installed on about 1/3 of all machines listed in the TOP500 list. As such, efficient visualization and analysis algorithms are critical for in situ and large-scale analysis.
Viskores provides the scientific visualization algorithms needed on modern HPC systems. Viskores is designed to be integrated into other software and currently integrates with Ascent, ParaView, VisIt, and ADIOS. As such, Viskores plays an important role in the HPC software ecosystem.
Viskores, by its nature, is hidden from end users behind a GUI and software stack. Thus, it can be hard to connect Viskores to potential customers that need updated functionality. One of our goals of joining the HPSF is to form connections between Viskores and potential customers that have visualization needs.
9
Code of Conduct
Adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html.
10
Governance Practices + Decision Making Process
https://github.com/Viskores/viskores/blob/main/CONTRIBUTING.md#governance-of-viskores
11
Misc
Two Sponsers from HPSF TAC
Todd Gamblin and Damien Lebrun-Grandie
Solution for source control
Solution for issue tracking
12
Required External Dependencies
13
Required External Dependencies
Viskores source contains snapshots of the following:
14
Optional External Dependencies
15
Release methodology and mechanics
Viskores is released on a roughly 6-month cadence although this is often adjusted as needed by customers.
We create a branch for each release, and each release is preceded by one or more release candidates. Each release candidate gets tagged and packaged like any other release. These release candidates are open for community testing, and when no problems are found for a particular release candidate, the same code is�provided as the next release.
Branches to several past releases are maintained to allow patching multiple releases that are in active use.
The full release process is documented in the Release Process guide.
16
Software quality efforts
All contributions to Viskores must be submitted as a pull request through GitHub. Before any pull request can be merged into the development or any release branch, it must be reviewed by an independent developer, and it must pass regression testing.
Code reviews are performed via the GitHub PR interface. Reviewers help check for correctness as well as verify the code satisfies Viskores testing, documentation, and style guidelines. Code reviews also help ensure against bad-faith contributions.
Regression testing is built into the CI infrastructure of pull requests. The pull request automatically launches jobs that in turn execute build and/or run phases in container images. Regression tests are automatically run on a variety of architectures including Windows, Mac OS, and multiple distributions of Linux. Builds include multiple compiler versions including GCC and Clang versions. Viskores is also tested specifically on Cuda and HIP architectures. In addition to the standard set of regression tests, a special job runs a select set of benchmarks to help ensure major performance regressions do not happen.
Note: In the transition from VTK-m, the Viskores CI infrastructure is being rebuilt, in part to take advantage of the gitlab.spack.io testing services.
17
Software quality efforts
18
Team
Kenneth Moreland, ORNL (@kmorel) -- Chair
Jefferson Amstutz, Nvidia (@jeffamstutz)
Mark Bolstad, SNL (@renderdude)
Hank Childs, U Oregon (@hankchilds)
Berk Geveci, Kitware (@berkgeveci)
Nicole Marsaglia, LLNL (@nicolemarsaglia)
Li-Ta "Ollie" Lo, LANL (@ollielo)
David Pugmire, ORNL (@dpugmire)
Silvio Rizzi, ANL (@srizzi88)
Gunther Weber, LBL (@ghweber)
Jefferson Amstutz (@jeffamstutz)
Vicente Bolea (@vicentebolea)
Mark Bolstad (@renderdude)
Hank Childs (@hankchilds)
Berk Geveci (@berkgeveci)
Nicole Marsaglia (@nicolemarsaglia)
Kenneth Moreland (@kmorel)
Li-Ta "Ollie" Lo (@ollielo)
David Pugmire (@dpugmire)
Silvio Rizzi (@srizzi88)
Gunther Weber (@ghweber)
Technical Steering Committee
Committers
19
Maturity level
We aim to join the HPSF as a Sandbox stage project while in the transition from VTK-m to Viskores. Although we have a mature process for continuous integration, software contributions, and release management, we will revisit these processes as part of the transition.
We hope to transition to an Established stage project shortly after the transition to the new name. Viskores has over 70 contributors spread across 20 organizations.
20
Communication channels
Bi-weekly public meetings
Email mailing list (to be transitioned from VTK-m)
GitLab issues and MRs (to be transitioned from VTK-m)
21
Existing financial sponsorships
Contributors are primarily paid by their own institution to work on Viskores. Most of the support funding comes from DOE/SC Software Sustainability funds informally known as OASIS. This and other application-facing support comes from the RAPIDS2 SciDAC project.
22
Infrastructure needs / requests
Viskores is interested in support for its CI system, particularly with regard to testing on various compute devices. (Much of this support will likely come from the University of Oregon testing platform currently used�for Spack. Thus, this might not be an expense on HPSF directly but would unlikely be made available without the HPSF.) We would also ask for support if Viskores outgrows GitHub free plans.
Viskores is also interested in HPSF support for communication materials such as the maintenance of web pages and videoconferencing accounts. We are also interested in regular hackathon meetings for code sprints.
23
Full form
24