Low pain vs no pain multi-core Haskells

Mustafa K. Aswad, Phil W. Trinder, Abyd Al Zain, Greg Michaelson, Jost Berthold · Intellect Books · 2014

Multi-cores 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 the first programming and performance comparison of functional multi-core technologies and reports some of the first ever multi-core results for two languages. As such it reflects the growing maturity of the field by systematically evaluating four parallel Haskell implementations on a common multi-core architecture. The comparison contrasts the programming effort each language requires with the parallel performance delivered. The study uses fifteen ‘typical’ programs to compare a ‘no pain’, i.e. entirely implicit, parallel language with three ‘low pain’, i.e. semi-explicit languages. The parallel Haskell implementations use different versions of GHC compiler technology, and hence 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. Our experiments focus on the number of programs improved, the absolute speedups delivered, the parallel scalability, and the program changes required to coordinate parallelism. The results are encouraging and, on occasion, surprising.

Read the paper · More papers on PaperTik