Low pain vs no pain multi-core Haskells
Research output: Chapter in Book/Report/Conference proceeding › Article in proceedings › Research › peer-review
Standard
Low pain vs no pain multi-core Haskells. / Aswad, Mustafa; Trinder, Phil; Al Zain, Abyd; Michaelson, Greg; Berthold, Jost.
Trends in Functional Programming 10. ed. / Zoltán Horváth; Viktória Zsók; Peter Achten; Pieter Koopman. Intellect, 2011. p. 49-64.Research output: Chapter in Book/Report/Conference proceeding › Article in proceedings › Research › peer-review
Harvard
APA
Vancouver
Author
Bibtex
}
RIS
TY - GEN
T1 - Low pain vs no pain multi-core Haskells
AU - Aswad, Mustafa
AU - Trinder, Phil
AU - Al Zain, Abyd
AU - Michaelson, Greg
AU - Berthold, Jost
N1 - Conference code: 10
PY - 2011
Y1 - 2011
N2 - Multicore and NUMA architectures are becoming the dominant processor technology and functional languages are theoretically well suited to exploit them. In practice, however, implementing effective high level parallel functional languages is extremely challenging.This paper is a systematic programming and performance comparison of four parallel Haskell implementations on a common multicore architecture. It provides a detailed analysis of the performance, and contrasts the programming effort that each language requires with the parallel performance delivered. The study uses 15 ’typical’ programs to compare a ‘no pain’, i.e. entirely implicit, parallel implementation with three ‘low pain’, i.e. semi-explicit, language implementations.We report detailed studies comparing the parallel performance delivered. The comparative performance metric is speedup which normalises against sequential performance. We ground the speedup comparisons by reporting both sequential and parallel runtimes and efficiencies for three of the languages. To measure the programming effort required by each language we record the number of programs improved and the relative and absolute program changes required to coordinate the parallelism.The results of the study are encouraging and, on occasion, surprising. We find that fully implicit parallelism as implemented in FDIP cannot yet compete with semi-explicit parallel approaches. Semi-explicit parallelism shows encouraging speedup for many of the programs in the test suite. Languages with implementations designed for distributed memory architectures perform surprisingly well given their high message-passing costs. This leads us to speculate that, as the number of cores grow, implementations with some form of independent heap will outperform those with shared heaps.
AB - Multicore and NUMA architectures are becoming the dominant processor technology and functional languages are theoretically well suited to exploit them. In practice, however, implementing effective high level parallel functional languages is extremely challenging.This paper is a systematic programming and performance comparison of four parallel Haskell implementations on a common multicore architecture. It provides a detailed analysis of the performance, and contrasts the programming effort that each language requires with the parallel performance delivered. The study uses 15 ’typical’ programs to compare a ‘no pain’, i.e. entirely implicit, parallel implementation with three ‘low pain’, i.e. semi-explicit, language implementations.We report detailed studies comparing the parallel performance delivered. The comparative performance metric is speedup which normalises against sequential performance. We ground the speedup comparisons by reporting both sequential and parallel runtimes and efficiencies for three of the languages. To measure the programming effort required by each language we record the number of programs improved and the relative and absolute program changes required to coordinate the parallelism.The results of the study are encouraging and, on occasion, surprising. We find that fully implicit parallelism as implemented in FDIP cannot yet compete with semi-explicit parallel approaches. Semi-explicit parallelism shows encouraging speedup for many of the programs in the test suite. Languages with implementations designed for distributed memory architectures perform surprisingly well given their high message-passing costs. This leads us to speculate that, as the number of cores grow, implementations with some form of independent heap will outperform those with shared heaps.
M3 - Article in proceedings
SN - 978-1-84150-158-1
SP - 49
EP - 64
BT - Trends in Functional Programming 10
A2 - Horváth, Zoltán
A2 - Zsók, Viktória
A2 - Achten, Peter
A2 - Koopman, Pieter
PB - Intellect
T2 - 10th Symposium on Trends in Functional Programming
Y2 - 2 June 2009 through 4 June 2009
ER -
ID: 173536116