The Chapel language under development at Cray-HPE is a modern parallel programming language with scalable performance on the largest supercomputers. There are already several significant applications implemented in Chapel, including in computational physics, fluid dynamics, graph analytics, and data science. However, there is a need to better understand the performance properties of Chapel's unique programming model in application to a broader range of scientific domains.
This project will translate a scientific application benchmark code from a reference implementation (e.g. C++) to Chapel, making use of Chapel's language abstractions for locality, task parallelism and data parallelism. We will conduct a performance comparison between the reference and translated versions of the code, identifying areas of strength or weakness in the Chapel language design and/or implementation.
- Understand key considerations of performance and productivity in programming models for high-performance computing;
- Gain familiarity with a representative scientific application code;
- Demonstrate systems engineering skills, including design, development, empirical evaluation, and communication, by contributing to a large and dynamic free software project; and
- Present research findings using accepted methods of academic presentation.
high-performance computing; scientific computing; performance analysis; parallel programming