A Comparative Study of Programming Models for Concurrency
Bachelor Thesis at UFRGS (Brazil), November 2011 — Juli 2012
Author: Kaue Soares da Silveira
Supervisor: Sebastian Nanz
The computing landscape has been radically changed by the recent transition of general-purpose computing to parallel architectures, in particular multicore processors. The reason for this transition are neither breakthroughs in programming nor processor architectures, but the simple fact that the processor manufacturing has hit physical limits that prevent further scaling of single processors. To make use of parallel processing power however, it no longer suffices to upgrade to the latest processor generation; instead, the software has to be written in a way that makes effective use of the available parallelism - a task that has long been recognized as difficult and error-prone. Various programming languages have therefore been proposed to make writing correct concurrent programs simpler than traditional multithreading: SCOOP, C-omega, Scala, Oz, Axum, Erlang, Chapel, X10, to name only a few. The goal of this project is to provide a detailed comparison of the different approaches, discuss their strenghts and weaknesses and identify the application areas they are best suited for. This research-oriented project should result in an international publication.