Parallel Processing

VTK has excellent support for distributed-memory parallel processing under MPI, as exemplified by ParaView. Here, we make use of the aggregate memory of the many nodes in a cluster or HPC machine, perform a depth composite during rendering, and are, thus, able to process and visualize extremely high-resolution datasets.

VTK also has support for multithreaded parallel processing, in which filters spawn threads that perform computations more quickly by dividing up the work among the many CPU cores available in modern machines. Support for threaded imaging filters has been in VTK for many years. Support for threaded processing of unstructured data first arrived in VTK 6.1 and is rapidly evolving.

VTK has emerging support for fine-grained parallel processing within GPUs and many core architectures. Support for accelerated processing arrived in VTK 6.0 and 6.1 with LANL’s vtkPiston interface and Sandia’s vtkDax interface. Like SMP processing, this capability is rapidly evolving and, in the near term, the Piston, Dax, and related EAVL work will become vtk-m.