I wanted to learn about the cell broadband engine used in the Playstation 3 and wrote a parallel ray tracer for it.
The cell broadband engine is a multi-core processor. One of the cores, the so called PPE, is a general processor that can handle I/O, memory, etc. There are 6 so called SPEs that are spezialized to number crunching. All the cores are 128-bit SIMD vector processors. So basically there are two ways to parallelize here.
- Run the ray tracer on the six SPEs and merge the results.
- Rewrite the ray tracer to process 4 rays simultaneously using the SIMD vectors.
At the point of writing i only implemented the first point. The following film shows the ray tracer in action. The ray tracer simply splits the screen into n parts and uses an SPE for each part.
Remark: This post was adapted to the new blog format in November 2016.