Ultimately supercomputing is a visual endeavor. Turning the so-called “data deluge” into pretty pictures and animations has always been the most straightforward way to extract insight from HPC simulations. But with the size of simulation datasets growing in tandem with the size of supercomputers, visualization has never been more challenging.
Visualization at scale is a problem peculiar to HPC, and therefore solutions are sometimes hard to come by. Generally, users have a choice of buying (or building) a domain-specific solution, purchasing a proprietary general-purpose product, or opting for an open-source solution.
It’s in the latter category that Kitware has made its mark. Founded in 1998, the company built a business around supporting the Visualization Toolkit (VTK), an open-source software library designed for computer graphics, image processing and visualization. VTK was born in 1993 at the GE Research Center in Schenectady, New York, as a software demonstration package that accompanied a visualization textbook, titled “The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics.” Both the software and the book were developed by GE employees Will Schroeder, Ken Martin and Bill Lorensen. After the book was published, interest in the software took off, and Schroeder and Martin went on to start up Kitware to support the burgeoning VTK community. Although Kitware’s original business model centered on visualization consulting services, the company has since expanded, adding a group that specializes in computer vision, one that does scientific data publishing, and another that focuses on software process and development.
But it’s the scientific computing group at Kitware that is aimed squarely at the HPC space. After Kitware was founded, Sandia and Los Alamos National labs contracted the company to help develop visualization tools for the simulations being run on the supercomputers at that time. A lot of the existing tools back then were either completely serial or used the shared-memory model of parallel computing and could not handle the data being produced by these large-scale supercomputer clusters. To fill that need, Kitware extended VTK to support distributed-memory parallel architectures.
As part of that work, they developed ParaView, an open-source visualization app that could be applied across a range of HPC-type applications. The initial funding for the effort was provided by a three-year contract from the DOE’s Accelerated Strategic Computing (ASCI) program, and in 2002, the first release of ParaView was made public. DoD labs, including the Army’s Engineer Research and Development Center (ERDC) and the Army Research Lab (ARL), subsequently kicked in additional money to expand the scope and functionality of the software. ParaView, which itself is based on VTK, has become one of the premier general-purpose applications for HPC visualization.
Today, ParaView can scale up and down across HPC infrastructure, from workstations to the largest supercomputers. When running on a supercomputer or (more commonly) a visualization cluster connected to one, ParaView runs in the client-server mode. In this case, the backend visualization runs in as a distributed parallel application with just user interface on the client side. ParaView has been ported to the Blue Gene architecture, the Cray XT line of supercomputers, Lawrence Livermore’s ASC Purple, as well as all commodity-based Linux and Windows clusters. On the client side, the software supports the usual suspects: Windows, Linux and Mac OS.
The largest users of VTK and ParaView are still in the DoD and DOE communities, which is not surprising when you consider how much of the big supercomputing hardware these two agencies own. Kitware has also worked with a few organizations in Europe, including the French electricity provider, Électricité de France (EDF), considered to be the world’s largest utility company. EDF also contributes to the VTK code base and has built its own tools on top of the library.
ParaView is especially good at working with Finite Element Analysis (FEA) codes, making it well-suited to a variety of applications at DOE and DoD computing centers. At Sandia, it’s being used to visualize the results of CTH, a shock physics code, as well as a number of material sciences applications used for nuclear weapons research. At Los Alamos, ParaView is being used across the open science domains, including cosmology, magnetohydrodynamics, and wind turbine modeling, to name a few. ParaView is also being applied to some of the climate simulations run at the lab, and the visualization results may wind up in the next Intergovernmental Panel on Climate Change (IPCC) report.
Besides the government space, Kitware also targets academia and commercial markets. Industry customers include oil & gas, pharmaceutical, and medical companies. However, because of the economic downturn, the majority of the company’s revenue is currently derived from the federal sector. Even in boom times, though, more than half of Kitware’s revenues come from government contracts.
According to Dr. Berk Geveci, who leads Kitware’s scientific computing group, approximately a quarter of the company’s revenue comes from small business grants issues by government agencies. These fall under the Small Business Innovation Research (SBIR) and the Small Business Technology Transfer (STTR) programs. Because a lot of these grants involve development of the open VTK and ParaView source code base, the business model becomes a virtuous circle for both Kitware and its customers. “We use those [grants] to develop our tools and toolkit, to add more functionality and make them available to the wider community,” explains Geveci. “We’ve been lucky that a lot of our collaborators understand the value of open source.”
One of Kitware’s more recent efforts is to provide an API for ParaView so that it can be directly coupled to a simulation code and run in the same process space. The goal in coupling is to avoid I/O as much as possible, keeping what would have been post-processing inside the simulation itself. At the same time, doing the visualization in-situ makes better use of the available computational resources. According to Geveci, the nice thing about the ParaView API is that you don’t have to change the internal data structures. You just add ParaView calls in the application to do the initialization, visualization functions and then finalization.
The ParaView library is currently being used with PHASTA, a CFD simulation code that can scale extremely well. Early testing has been performed on an IBM Blue Gene/L supercomputer at the Rensselaer Polytechnic Institute. At some point they would like to run ParaView in this coprocessing model on the Jaguar supercomputer at Oak Ridge National Lab. “Our goal is to scale that functionality all the way to petascale and beyond,” says Geveci.
ParaView is not alone in the open source arena. VisIt was originally developed at Lawrence Livermore National Laboratory under ASCI and is now supported by the DOE’s Scientific Discovery Through Advanced Computing (SciDAC) program. Like ParaView, VisIt is based on the VTK library. VisTrails, 3DSlicer, MayaVi, and OsiriX are other visualization apps developed with VTK, but they tend to be more specialized and are not targeted for large-scale HPC.
CEI’s EnSight is the big competitor to ParaView in the commercial arena, especially in verticals like aerospace, where Kitware is trying to make inroads. Compared to open source visualization, EnSight has been around much longer and is more fully featured, but is less common at the big government labs.
“Government and academic supercomputing sites tend to prefer open source,” notes Geveci. “So you won’t necessarilly see EnSight in many of them. In industry, EnSight may be on more machines than Visit and ParaView. Hopefully, in time, we’ll change that too.”
A future area of interest for Kitware is support for distance visualization. Being able to view the results of a simulation without having to move the data off the supercomputing site is becoming more necessary as datasets grow in size. Along those same lines is the concept of collaborative visualization, enabling multiple researchers at different sites to share results and look at the data together. A lot of this will be enabled by Web-based interfaces, which are slowly edging out the traditional desktop GUI. “The idea is to share data and visualization of data as a larger community,” explains Geveci. “Enabling sharing of data and results through distance visualization and collaboration is very important to us and I think is going to be important to the community at large.”