An excercise in parallelization with the Cell Broadband Engine

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.

  1. Run the ray tracer on the six SPEs and merge the results.
  2. 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.

 "Little big planet and computer graphics" "Real-Time RayTracer running on Core 2 Duo"