Scala Parallel Collections VS GPU Frameworks
C++ Scala Shell
Switch branches/tags
Nothing to show
Latest commit 18c5073 Jun 7, 2013 @mantognini mantognini Update Readme
Failed to load latest commit information.
c++ Switch C++#1 with C++#2 Jun 4, 2013
common Add MC impl with workstealing collection May 26, 2013
mathematica Update Mathematica model of poly May 11, 2013
results Minor Jun 6, 2013
scala Update dataset Jun 5, 2013
thrust Add dataset with double on GPU Jun 4, 2013
.gitignore Minor update Jun 4, 2013 Update Readme Jun 6, 2013

Scala Parallel Collections VS GPU Frameworks

Bachelor Semester Project under the supervision of LAMP at EPFL

Marco Antognini, Sprint 2013


The objectives of this bachelor project are multiple. First, it aims to identify the currently available technologies to perform heavy computation like clusters of servers but also more compact computational devices like GPUs.

The second objective is to implement a few benchmark applications to compare the performance – that is, the processing time but also more subjective metrics like the number of code line or the implementation cost in manpower – of a GPU framework and the parallel collections of Scala that work on CPUs.

The selected GPU framework is Thrust, developed by NVIDIA on top of CUDA. Alternatively, this document also presents other technologies like Microsoft's C++AMP and uses very quickly TBB, a C++ framework for parallel computation developed by Intel.

A subsidiary point approached by this paper is the comparison of performance between the current parallel collections of Scala and the underdevelopment Workstealing framework.

This project concludes that GPU implementations are definitely much faster for short and easy algorithms but for bigger problems the use of GPU computational device is much harder, takes longer to develop and is not always faster. It also looks for future developments opportunities for Scala.