Examples for parallel frameworks

Raytracer

To test the performance of individual frameworks and hardware, I have used a simple raytracer as a visual benchmark.

A raytracer is well-suited, because

Comparison

The following table contains the results.

Language Technique CPU/GPU Cores/SMs/Threads Avg FPS/s Min FPS/s Max FPS/s
C++ Sequential CPU 1 Core = 1 Thread --.-- --.-- --.--
C++ POSIX Threads (pthreads) CPU 4 Cores * 2 Hyperthreads = 8 Threads --.-- --.-- --.--
C++ OpenMP CPU 4 Cores * 2 Hyperthreads = 8 Threads --.-- --.-- --.--
C++ NVIDIA CUDA GPU 16 SM = 512 Cores = 512 Threads --.-- --.-- --.--
C++ OpenCL GPU 16 SM = 512 Cores = 512 Threads --.-- --.-- --.--
C++ Cell-Processor CPU 6 SPUs --.-- --.-- --.--
Haskell Sequential CPU 1 --.-- --.-- --.--
Haskell par CPU 4 Cores * 2 Hyperthreads = 8 Threads --.-- --.-- --.--
Java Sequential CPU 1 --.-- --.-- --.--
Java 7 ForkJoinPool CPU 4 Cores * 2 Hyperthreads = 8 Threads --.-- --.-- --.--

Do you have questions? Send me an email!

Copyright © 2007-2012 Jörn Dinkla. All rights reserved.

Valid XHTML 1.0 Strict Valid CSS! Firebug - Web Development Evolved
Last modified: