A side-effect-free hierarchical radiosity algorithm

The implementation of irregular algorithms with dynamic access patterns often requires the use of complex data structures and makes essential use of side effects. An example is the hierarchical radiosity method, a global illumination method from computer graphics, which uses dynamically growing trees with mutual interactions. The irregularity of the algorithm does not hinder a parallel realization on machines with a global address space, but the use of side effects requires a locking mechanism in order to avoid race conditions. This may cause sequentializations that reduce the obtainable speedup. Functional languages offer the possibility of programming without side effects, and they allow parallelization to be expressed orthoganally from the main program. In this paper we use Haskell, a standard nonstrict pure functional language, to realize the coordination level of the hierarchical radiosity algorithm without side effects. The program is executable sequentially using standard compilers, and it offers a variety of straightforward parallelization strategies without explicit locking that can be implemented with no change to the structure of the program.

[1]  Simon Peyton Jones,et al.  GpH: An Architecture-independent Functional Language , 1998 .

[2]  L. Renambot,et al.  Towards efficient parallel radiosity for DSM-based parallel computers using virtual interfaces , 1997, Proceedings IEEE Symposium on Parallel Rendering (PRS'97).

[3]  Colin Runciman,et al.  Applications Of Functional Programming , 1995 .

[4]  S. Peyton-jones,et al.  Implementation of Functional Languages , 1997, Lecture Notes in Computer Science.

[5]  Pieter H. Hartel,et al.  Special Issue on State-of-the-art applications of pure functional programming languages , 1993 .

[6]  Werner Purgathofer,et al.  Progressive Refinement Radiosity on a Transputer Network , 1994 .

[7]  Donald P. Greenberg,et al.  Modeling the interaction of light between diffuse surfaces , 1984, SIGGRAPH.

[8]  Simon L. Peyton Jones,et al.  H/Direct: a binary foreign language interface for Haskell , 1998, ICFP '98.

[9]  Robert Garmann,et al.  A Parallel Approach to Hierarchical Radiosity , 1995 .

[10]  Thomas Rauber,et al.  A Shared-Memory Implementation of the Hierarchical Radiosity Method , 1998, Theor. Comput. Sci..

[11]  Christine Morin,et al.  Scalable Shared Memory Multiprocessors: Some Ideas to Make Them Reliable , 1993, Hardware and Software Architectures for Fault Tolerance.

[12]  John Hughes,et al.  Report on the Programming Language Haskell 98 , 1999 .

[13]  Daniel E. Lenoski,et al.  Scalable Shared-Memory Multiprocessing , 1995 .

[14]  Jean Roman,et al.  Implementation results and analysis of a parallel progressive radiosity , 1995 .

[15]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[16]  M. B. Carter,et al.  Parallel hierarchical radiosity rendering , 1993 .

[17]  P. Heckbert Simulating Global Illumination Using Adaptive Meshing , 1991 .

[18]  Kevin Hammond,et al.  Research Directions in Parallel Functional Programming , 1999, Springer London.

[19]  Hans-Wolfgang Loidl,et al.  Algorithm + strategy = parallelism , 1998, Journal of Functional Programming.

[20]  Simon Peyton Jones,et al.  Green card: a foreign-language interface for Haskell , 1997 .

[21]  Marc Levoy,et al.  Parallel visualization algorithms: performance and architectural implications , 1994, Computer.

[22]  Derek J. Paddon,et al.  Parallel Processing of Progressive Refinement Radiosity Methods , 1994 .

[23]  Shi-Nine Yang,et al.  A parallel hierarchical radiosity algorithm for complex scenes , 1997, PRS '97.

[24]  Thomas A. Funkhouser Coarse-grained parallelism for hierarchical radiosity using group iterative methods , 1996, SIGGRAPH.

[25]  Pat Hanrahan,et al.  A rapid hierarchical radiosity algorithm , 1991, SIGGRAPH.

[26]  Jaswinder Pal Singh,et al.  Parallel hierarchical computation of specular radiosity , 1997, PRS '97.

[27]  L. Greengard The Rapid Evaluation of Potential Fields in Particle Systems , 1988 .