MPI-hybrid Parallelism for Volume Rendering on Large, Multi-core Systems

This work studies the performance and scalability characteristics of "hybrid" parallel programming and execution as applied to raycasting volume rendering — a staple visualization algorithm — on a large, multi-core platform. Historically, the Message Passing Interface (MPI) has become the de-facto standard for parallel programming and execution on modern parallel systems. As the computing industry trends towards multi-core processors, with fourand six-core chips common today and 128-core chips coming soon, we wish to better understand how algorithmic and parallel programming choices impact performance and scalability on large, distributed-memory multi-core systems. Our findings indicate that the hybrid-parallel implementation, at levels of concurrency ranging from 1,728 to 216,000, performs better, uses a smaller absolute memory footprint, and consumes less communication bandwidth than the traditional, MPI-only implementation.

[1]  SabellaPaolo A rendering algorithm for visualizing 3D scalar fields , 1988 .

[2]  Georg Hager,et al.  Communication Characteristics and Hybrid MPI/OpenMP Parallel Pr ogramming on Clusters of Multi-core SMP Nodes , 2009 .

[3]  Pat Hanrahan,et al.  Volume Rendering , 2020, Definitions.

[4]  Joe Michael Kniss,et al.  Interactive Texture-Based Volume Rendering for Large Data Sets , 2001, IEEE Computer Graphics and Applications.

[5]  Paolo Sabella,et al.  A rendering algorithm for visualizing 3D scalar fields , 1988, SIGGRAPH.

[6]  Charles D. Hansen,et al.  A data distributed, parallel algorithm for ray-traced volume rendering , 1993 .

[7]  Lorie M. Liebrock,et al.  InterGrid: a case for internetworking islands of Grids , 2008 .

[8]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[9]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[10]  Katherine Yelick,et al.  UPC: Distributed Shared-Memory Programming , 2003 .

[11]  Lorie M. Liebrock,et al.  Methodology for modelling SPMD hybrid parallel computation , 2008, Concurr. Comput. Pract. Exp..

[12]  T. L. Huntsberger,et al.  A distributed memory algorithm for volume rendering , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[13]  Insung Ihm,et al.  Parallel Ray Casting of Visible Human on Distributed Memory Architectures , 1999 .

[14]  Marc Levoy,et al.  Display of surfaces from volume data , 1988, IEEE Computer Graphics and Applications.

[15]  Marc Levoy,et al.  Volume rendering on scalable shared-memory MIMD architectures , 1992, VVS.

[16]  Marc Levoy,et al.  Display of surfaces from volume data , 1988, IEEE Computer Graphics and Applications.

[17]  Klaus Mueller,et al.  Overview of Volume Rendering , 2005, The Visualization Handbook.

[18]  Rohit Chandra,et al.  Parallel programming in openMP , 2000 .

[19]  Robert Latham,et al.  End-to-End Study of Parallel Volume Rendering on the IBM Blue Gene/P , 2009, 2009 International Conference on Parallel Processing.

[20]  Arie E. Kaufman,et al.  PVR: high-performance volume rendering , 1996 .

[21]  Kwan-Liu Ma,et al.  Parallel volume ray-casting for unstructured-grid data on distributed-memory architectures , 1995, PRS.

[22]  David R. Butenhof Programming with POSIX threads , 1993 .

[23]  Kwan-Liu Ma,et al.  A Scalable, Hybrid Scheme for Volume Rendering Massive Data Sets y , 2022 .

[24]  Juan Touriño,et al.  Performance Evaluation of MPI, UPC and OpenMP on Multicore Architectures , 2009, PVM/MPI.

[25]  Craig Upson,et al.  V-buffer: visible volume rendering , 1988, SIGGRAPH.

[26]  Robert B. Ross,et al.  A configurable algorithm for parallel image-compositing applications , 2009, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis.