Chapel Parallel Programming Language

MentorMichael Ferguson (mppf)
Project Websitehttps://chapel-lang.org
Project Repositoryhttps://github.com/chapel-lang/chapel
Suitable for Beginners?no
TagsChapel parallel computing algorithms sorting high performance computing
Stateaccepted
Applications (1st Choice)7 (6 submitted | 1 in-progress)
Applications (2nd Choice)2 (2 submitted | 0 in-progress)
Code of Conducthttps://github.com/chapel-lang/chapel/issues/8276
LicenseApache License 2.0 (Apache-2.0)

Project Description

Chapel is an open-source programming language designed for productive parallel computing at scale.

Native Parallelism

Chapel supports parallelism at the language level. For instance, Chapel provides a "coforall" loop, which is similar to a "for" loop and creates a separate task per iteration of the loop body. These explicit parallelism features make it easier to reason about the parallelism in your algorithm and program.

Data and Task Locality

When working on a large machine, the location of some data relative to the task which uses it or other data with which it must work plays a key role in performance. Chapel provides features which allow you to control that placement, both within a data structure and outside it.

Multiresolution Philosophy

Chapel is designed around a multiresolution philosophy, permitting users to initially write very abstract code and then incrementally add more detail until they are as close to the machine as their needs require.

Modern Language Features

Chapel supports code reuse and rapid prototyping via object-oriented design, type inference, and features for generic programming.

Interoperability

Existing code from other languages can be integrated into Chapel programs (or vice-versa) via interoperability features.

Project's Requirements

This project will require you to learn the Chapel programming language.

To succeed at this project, you will need:

  • Proficiency in some programming language
  • Exposure to the big-O complexity analysis of algorithms

Additionally, we ask that you do the following during the application process:

  • Learn to write basic Chapel programs before applying (see this page)
  • Be prepared to show off some of your Chapel programs in your application

Bonus points if you have familiarity with any of:

  • parallel programming (e.g. pthreads, OpenMP, ...)
  • distributed memory programming (e.g. MPI, UPC, ...)
  • sorting algorithms (radix sort, quicksort, ...)

Tasks And Features

The Chapel standard library comes with a Sort module that includes many sorting functions. However the parallel performance of these sort algorithms has not been studied in detail, and furthermore the module is missing a radix sort. This project would consist of three phases. First, implement radix sort - including developing a API for specifying keys. Second, perform performance studies of both radix sort and the existing sorts and improve the implementations if possible. Finally, develop distributed radix sort and measure the performance of distributed sorting.

Comments

You must be logged in to comment on this project.


Sarthak Munshi, Wednesday, February 28, 08:46 UTC

Hi! I am available as a coach for this project. I was an ex-GSoC student for Chapel. You can contact me directly at sarthakmunshi@gmail.com


Engin Kayraklioglu, Tuesday, February 27, 22:00 UTC

Hi! I am available as a coach for this project. You can contact me directly at ekayrakli@gmail.com


Jonathan Dursi, Saturday, February 24, 20:05 UTC

Hi! I'm Jonathan Dursi, available to help coach for this project; I've spent a lot of time doing computing for science ranging from astrophysics to genomics, and while I'm comparatively new to Chapel, I'm very excited about it as both a programming language and as a community. Once you've started discussing the project in general with the community on Gitter or the Chapel GSoC mailing list, feel free to contact me directly at jonathan@dursi.ca.


Louis Jenkins, Friday, February 23, 18:05 UTC

Hello, I'm available as a coach for this project. If you wish to converse via email contact me at LouisJenkinsCS@hotmail.com


Ben Albrecht, Friday, February 23, 15:58 UTC

Hi, I am available as a coach for this project. If you want to talk to me, you can find me online on the Gitter channel.


Michael Ferguson, Monday, February 12, 15:01 UTC

I'll try to occasionally monitor comments on this page but then I'll just point people to the following resources:

For getting in touch / asking questions about the project:

The benefit of using these communication mediums is that other community members can help in many cases.

If you're interested in contributing or applying and are looking for a place to start, see https://chapel-lang.org/contributing.html

Thanks everybody for your interest!

-michael


Sakshi Shukla, Saturday, February 10, 18:15 UTC

Dear Sir,
Namrata and I are looking really forward to take up this project. We both are quite inclined towards machine learning and data structures and we have some great ideas to implement on. We have acquired a good knowledge of python and data structures. We loved the idea of the project and to take this up. We look forward to your reply!


Louis Jenkins, Friday, February 9, 22:17 UTC

All questions and inquiries should be directed at IRC #chapel-developers (freenode) or Gitter.


psxpa3, Friday, February 9, 18:38 UTC

Hi Michael,

I (Priya) with my friend (Kavya) wants to work on this project. We collaboratively have the skills required for this project. So, could we have a quick meeting (skype or whatever way) to get to know more about this project and what sort of prior contributions, if any, is needed before filing the application for RGSoc.

email id: arora.priya4172@gmail.com

Regards,
Priya Arora


Rupal-IIITD, Sunday, February 4, 17:55 UTC

Hi Michael.

We are a team applying for RGSoC this year. We really liked the concept of your project and are considering to submit a proposal for it. I wanted to get in touch with you to explore more about the project and for clearing our queries regarding the project deliverables and tasks (contributions to be made for applying, etc.) to get started on.

Looking forward to get in a conversation with you. :)


Michael Ferguson, Wednesday, January 24, 16:44 UTC

Code of Conduct

We're a relatively small community that hasn't created a code of conduct yet but many of us are interested in doing so. In the application above, we linked to an issue discussing the topic. Even though we don't have a formal code of conduct yet, we believe that we have a pleasant and welcoming community.