Download presentation from Visualization Frameworks for Multi-Core and Many-Core Architectures Panel at Supercomputing 2012 (including videos)
A Portable Cross-Platform Framework for Data-Parallel Visualization Operators
The Portable Data-Parallel Visualization and Analysis Library (also referred to as PISTON) is a cross-platform software library providing frequently used operations for scientific visualization and analysis. The algorithms for these operations are specified in a data-parallel way. By using nVidia's freely downloadable Thrust library and our own tools, we can generate executable codes for different acceleration hardware architectures (GPUs and multi-core CPUs) from a single version of source code. The library is designed to be extensible and is intended to be integrated into other visualization applications.
View the videos linked below to see our isosurface, cut plane, and threshold operators interacting in real-time with several scientific data sets, compiling to three different backends using PISTON. The code for the operators compiled for the CUDA and OpenMP backends is exactly the same, and uses nVidia's Thrust library. As Thrust does not currently support OpenCL, we are developing our own OpenCL backend. It compiles code for the operators that is almost (but not yet exactly) the same as that for the other two backends; ongoing work will more completely integrate these backends.