Beyond Classical Parallel Programming Frameworks: Chapel vs Julia

Authors Rok Novosel, Boštjan Slivnik



PDF
Thumbnail PDF

File

OASIcs.SLATE.2019.12.pdf
  • Filesize: 0.63 MB
  • 8 pages

Document Identifiers

Author Details

Rok Novosel
  • Faculty of Computer and Information Science, University of Ljubljana, Ve\v cna pot 113, 1000 Ljubljana, Slovenia
Boštjan Slivnik
  • Faculty of Computer and Information Science, University of Ljubljana, Večna pot 113, 1000 Ljubljana, Slovenia

Acknowledgements

The authors want to thank Janez Pintar for valuable discussions at the beginning of this work.

Cite AsGet BibTex

Rok Novosel and Boštjan Slivnik. Beyond Classical Parallel Programming Frameworks: Chapel vs Julia. In 8th Symposium on Languages, Applications and Technologies (SLATE 2019). Open Access Series in Informatics (OASIcs), Volume 74, pp. 12:1-12:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)
https://doi.org/10.4230/OASIcs.SLATE.2019.12

Abstract

Although parallel programming languages have existed for decades, (scientific) parallel programming is still dominated by Fortran and C/C++ augmented with parallel programming frameworks, e.g., MPI, OpenMP, OpenCL and CUDA. This paper contains a comparative study of Chapel and Julia, two languages quite different from one another as well as from Fortran and C, in regard to parallel programming on distributed and shared memory computers. The study is carried out using test cases that expose the need for different approaches to parallel programming. Test cases are implemented in Chapel and Julia, and in C augmented with MPI and OpenMP. It is shown that both languages, Chapel and Julia, represent a viable alternative to Fortran and C/C++ augmented with parallel programming frameworks: the programmer’s efficiency is considerably improved while the speed of programs is not significantly affected.

Subject Classification

ACM Subject Classification
  • Computing methodologies → Parallel programming languages
Keywords
  • parallel programming languages
  • Chapel
  • Julia

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users' Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA, 3rd edition, 1999. Google Scholar
  2. David Arthur and Sergei Vassilvitskii. k-means++: The advantages of careful seeding. In Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms, pages 1027-1035. Society for Industrial and Applied Mathematics, 2007. Google Scholar
  3. Krste Asanovic, Ras Bodik, Bryan Christopher Catanzaro, Joseph James Gebis, Parry Husbands, Kurt Keutzer, David A Patterson, William Lester Plishker, John Shalf, Samuel Webb Williams, et al. The landscape of parallel computing research: A view from berkeley. Technical report, EECS Department, University of California, 2006. Google Scholar
  4. Henri E. Bal. A comparative study of five parallel programming languages. Future Generation Computer Systems, 8(1-3):121-135, 1992. Google Scholar
  5. Josh Barnes and Piet Hut. A hierarchical O(N log N) force-calculation algorithm. Nature, 324(6096):446, 1986. Google Scholar
  6. A. P. W. Böhm and R. R. Oldehoeft. Two Issues in Parallel Language Design. ACM Transactions on Programming Languages and Systems, 16(6):1675-1683, 1994. Google Scholar
  7. Dan Bonachea and P Hargrove. GASNet Specification, v1.8.1. https://gasnet.lbl.gov/dist/docs/gasnet.html, 2017.
  8. Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, and Lawrence Snyder. The high-level parallel language ZPL improves productivity and performance. In Proceedings of the IEEE International Workshop on Productivity and Performance in High-End Computing, pages 66-75, 2004. Google Scholar
  9. Shimin Chen, Phillip B Gibbons, Michael Kozuch, Vasileios Liaskovitis, Anastassia Ailamaki, Guy E Blelloch, Babak Falsafi, Limor Fix, Nikos Hardavellas, Todd C Mowry, et al. Scheduling threads for constructive cache sharing on CMPs. In Proceedings of the nineteenth annual ACM symposium on Parallel algorithms and architectures, pages 105-115. ACM, 2007. Google Scholar
  10. Cheng-Tao Chu, Sang K Kim, Yi-An Lin, YuanYuan Yu, Gary Bradski, Kunle Olukotun, and Andrew Y Ng. Map-reduce for machine learning on multicore. In Advances in neural information processing systems, pages 281-288, 2007. Google Scholar
  11. Jeffrey Dean and Sanjay Ghemawat. MapReduce: simplified data processing on large clusters. Communications of the ACM, 51(1):107-113, 2008. Google Scholar
  12. John T. Feo, editor. A Comparative Study of Parallel Programming Languages: The Salishan Problems. North Holland, New York, NY, USA, 1992. Google Scholar
  13. Geoffrey C Fox. A graphical approach to load balancing and sparse matrix vector multiplication on the hypercube. In Numerical Algorithms for Modern Parallel Computer Architectures, pages 37-61. Springer, 1988. Google Scholar
  14. W Donald Frazer and AC McKellar. Samplesort: A sampling approach to minimal storage tree sorting. Journal of the ACM (JACM), 17(3):496-507, 1970. Google Scholar
  15. Charles Antony Richard Hoare. Communicating sequential processes. Prentice-Hall, 1985. Google Scholar
  16. Ken Kennedy, Charles Koelbel, and Hans Zima. The Rise and Fall of High Performance Fortran: An Historical Object Lesson. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages, pages 7-1-7-22, 2007. Google Scholar
  17. Chapel Programming Language. Chapel Issue: Performance issues when running n-body simulation. https://github.com/chapel-lang/chapel/issues/11333. Accessed: 2019-04-24.
  18. Chapel Programming Language. Chapel Issue: Using with clause in coforall loop for distributed k-means. https://github.com/chapel-lang/chapel/issues/12006. Accessed: 2019-04-24.
  19. Julia Programming Language. Julia Issue: performance of captured variables in closures. https://github.com/JuliaLang/julia/issues/15276. Accessed: 2019-04-24.
  20. Julia Programming Language. Julia Performance Tips. https://docs.julialang.org/en/v1/manual/performance-tips/index.html. Accessed: 2019-04-22.
  21. Stuart Lloyd. Least squares quantization in PCM. IEEE transactions on information theory, 28(2):129-137, 1982. Google Scholar
  22. Donald Meagher. Geometric modeling using octree encoding. Computer graphics and image processing, 19(2):129-147, 1982. Google Scholar
  23. Lars Nylons, Mark Harris, and Jan Prins. Fast n-body simulation with CUDA. URL: https://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_website/projects/nbody/doc/nbody_gems3_ch31.pdf.
  24. John K Salmon. Parallel hierarchical N-body methods. PhD thesis, California Institute of Technology, 1991. Google Scholar
  25. Jaswinder Pal Singh, Wolf-Dietrich Weber, and Anoop Gupta. SPLASH: Stanford parallel applications for shared-memory. ACM SIGARCH Computer Architecture News, 20(1):5-44, 1992. Google Scholar
  26. Andreas Stefik and Stefan Hanenberg. Methodological Irregularities in Programming-Language Research. Computer, 50(8):60-63, 2017. URL: http://dx.doi.org/10.1109/MC.2017.3001257.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail