Have Your Cake and Eat It? Productive Parallel Programming via Chapel’s High-level Constructs
Date
2018-05
Authors
Cai, Zixian
Journal Title
Journal ISSN
Volume Title
Publisher
The Australian National University
Abstract
Explicit parallel programming is required to utilize the growing parallelism in computer
hardware. However, current mainstream parallel notations, such as OpenMP
and MPI, lack in programmability. Chapel tries to tackle this problem by providing
high-level constructs. However, the performance implication of such constructs is not
clear, and needs to be evaluated.
The key contributions of this work are: 1. An evaluation of data parallelism and
global-view programming in Chapel through the reduce and transpose benchmarks.
2. Identification of bugs in Chapel runtime code with proposed fixes. 3. A benchmarking
framework that aids in conducting systematic and rigorous performance
evaluation.
Through examples, I show that data parallelism and global-view programming
lead to clean and succinct code in Chapel. In the reduce benchmark, I found that
data parallelism makes Chapel outperform the baseline. However, in the transpose
benchmark, I found that global-view programming causes performance degradation
in Chapel due to frequent implicit communication. I argue that this is not an inherent
problem with Chapel, and can be solved by compiler optimizations.
The results suggest that it is possible to use high-level abstraction in parallel
languages to improve the productivity of programmers, while still delivering competitive
performance. Furthermore, the benchmarking framework I developed can aid
the wider research community in performance evaluations.
Description
Keywords
parallel programming, chapel
Citation
Collections
Source
Type
Report (Student work)
Book Title
Entity type
Access Statement
Open Access
License Rights
DOI
Restricted until
Downloads
File
Description