Parallel implementation of a ray tracing algorithm for distributed memory parallel computers

Ray tracing is a well known technique to generate life-like images. Unfortunately, ray tracing complex scenes can require large amounts of CPU time and memory storage. Distributed memory parallel computers with large memory capacities and high processing speeds are ideal candidates to perform ray tracing. However, the computational cost of rendering pixels and patterns of data access cannot be predicted until runtime. To parallelize such an application efficiently on distributed memory parallel computers, the issues of database distribution, dynamic data management and dynamic load balancing must be addressed. In this paper, we present a parallel implementation of a ray tracing algorithm on the Intel Delta parallel computer. In our database distribution, a small fraction of database is duplicated on each processor, while the remaining part is evenly distributed among groups of processors. In the system, there are multiple copies of the entire database in the memory of groups of processors. Dynamic data management is acheived by an ALRU cache scheme which can exploit image coherence to reduce data movements in ray tracing consecutive pixels. We balance load among processors by distributing subimages to processors in a global fashion based on previous workload requests. The success of our implementation depends crucially on a number of parameters which are experimentally evaluated. 1997 by John Wiley & Sons, Ltd.

[1]  James T. Kajiya,et al.  Ray tracing complex scenes , 1986, SIGGRAPH.

[2]  T. Priol,et al.  Parallel Space Tracing: An Experience on an iPSC Hypercube , 1988 .

[3]  Thierry Priol,et al.  Distributing data and control for ray tracing in parallel , 1994, IEEE Computer Graphics and Applications.

[4]  D. A. J. Jevans,et al.  Optimistic Multi-Processor Ray Tracing , 1989 .

[5]  Cauligi S. Raghavendra,et al.  Experimental Evaluation of Load Balancing Strategies for Ray Tracing on Parallel Processors , 1994, 1994 Internatonal Conference on Parallel Processing Vol. 2.

[6]  K. A. Teague,et al.  The Hypercube Ray Tracer , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[7]  Leonard McMillan,et al.  A Parallel Image Computer with a Distributed Frame Buffer: System Architecture and Programming , 1989, Eurographics.

[8]  Scott Whitman Multiprocessor methods for computer graphics rendering , 1992 .

[9]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

[10]  Stuart A. Green,et al.  Parallel processing for computer graphics , 1991, Research monographs in parallel and distributed computing.

[11]  K Nemoto,et al.  An adaptive subdivision by sliding boundary surfaces for fast ray tracing , 1986 .

[12]  Thierry Priol,et al.  Ray tracing on distributed memory parallel computers : strategies for distributing computations and data , 1990 .

[13]  Derek J. Paddon,et al.  Exploiting coherence for multiprocessor ray tracing , 1989, IEEE Computer Graphics and Applications.

[14]  Eric Hoines,et al.  A Proposal for Standard Graphics Environments , 1987, IEEE Computer Graphics and Applications.

[15]  Mark A. Z. Dippé,et al.  An adaptive subdivision algorithm and parallel architecture for realistic image synthesis , 1984, SIGGRAPH.