Evaluation and Comparison of Programming Frameworks for Shared Memory Multicore Systems

University essay from Linköpings universitet/Programvara och systemLinköpings universitet/Tekniska högskolan

Author: Silvén Mikael; [2014]

Keywords: ;

Abstract: In this masters thesis we explore past work trying to classify algorithmic problems. These classications are used to select problems for evaluating dierent programming languages and frameworks. We use a subset of the 13 Dwarfs of Berkeley, more specically: dense and sparse linear algebra, spectral methods, graph traversal and MapReduce. We evaluate the performance and ease of use of two programming frameworks and two languages of interest to Etteplan, a large consultant company; C++ using either OpenMP or MPI and Erlang. We show that MPI can be used to speed up programs in a shared memory system, it handles structured problems well but struggles with more dynamic work loads such as the graph traversal algorithm BFS that we use as a benchmark. Additionally we show that OpenMP is an easy way to gain performance by utilizing thread level parallelism in most situations. Erlang, the concurrency focused programming language from Ericsson is explored as an alternative to C++. However its immutable tree data structures do not compete with ecient in-place updates of memory arrays with constant access time.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)