Shared Memory and Distributed Memory Parallel Ray Tracer Dmitriy Bespalov
Overview What is Ray Tracer Implemented Features of Ray Tracer Parallel Implementation Experimental Results Conclusions
What is Ray Tracer Ray Tracer – generate realistic images
Trivial Ray Tracer
Hierarchical Modeling
Phong’s shading model and supersampling
Acceleration Technique Prune rays earlier Use axis-aligned bounding boxes Divide bounding boxes into buckets
Shadows and Reflection Phong’s shading model and supersampling
Parallel Implementation Shared Memory Create job list Threads remove jobs from the list Distributed Memory Send scene to every work node Work nodes request jobs from supervisor
Experimental Results Render same scene using both ray tracers 4 reflective spheres 3 meshes (~20000 faces)
Running Times Shared Memory Distributed Memory 1 thread: 682.3 seconds 2 threads: 349.6 seconds Distributed Memory 1 thread on ws79: 792.3 seconds
Running Times
Speed-Up
Efficiency
Conclusions Good parallel performance Shared Memory Almost twice as fast with 2 threads Distributed Memory: Linear speed-up Constant efficiency Run time is independent of the job size
Thank You! Questions?