Janez Pintar (2019) Programming languages for parallel programming. EngD thesis.
Abstract
While multi-core computers have already become fully established, there is no such established programming language, that allows implicit exploitation of parallel computing. The current de facto standard for parallel programming is the C++ programming language, with the OpenMP framework for multi-threading programming and the MPI library for distributed programming. In this work we studied some evolving programming languages that allow implicit parallel programming. We compared them between each other and with the established methods. We found that thanks to the Chapel language's high-level, parallel programming in that is more productive than programming in the C++ language, even though the execution speeds are comparable. Unfortunately, because of the small ecosystem, Chapel language is still mostly meant for people with knowledge in computer science. Language Julia is especially suitable for scientific programmers who do not necessarily have computer science skills. Despite the interpreted nature, the speed of the language is surprising, although it can not compete with the speed of the compiled languages. Finally, the language X10 did not performed very well, not in the speed of execution, neither in productivity.
Actions (login required)