Back to Programs

Programming languages

Chapel

A Productive Parallel Programming Language

cc++chapelhigh-performance computingpython

Participation history

5 GSoC years

2021

3 projects

Official year page

Go-Style Channels

This project aims to add support of Go-Style Channels to the Chapel language. In Go, a channel is used to synchronize and communicate between...

Matrix Exponentials

Matrix Exponentials are used in solving systems of linear differential equations. It is also widely used in Quantum Mechanics (Schrodinger's...

Socket Library

The Proposal contains details for implementation of Socket Module to be completed within the timeline of GSOC in the summers. Key elements of the...

2020

4 projects

Official year page

Improve Mason Package Manager

A package manager is a programming language's tool to create environments for projects and easily use external dependencies. It allows users or...

Native Distribute Linear Algebra Implementations

Provide a distributed implementation of the Linear Algebra package in Chapel, which is currently restricted to a single node/locale

Sequential Data Structures

Provide a new mason package implementing various parallel safe sequential data structures.

Protocol Buffers Integration

Google Protocol Buffers is a language-neutral serialization library. However Chapel support for Protocol Buffers has not been investigated....

2019

4 projects

Official year page

Improvements to Chapel LLVM Backend

The Chapel compiler optionally can produce LLVM IR and use LLVM optimizations with –llvm. Going forward, Chapel will use LLVM more and more because...

Distributed Sparse Linear Algebra Library in Chapel

This project includes adding BLAS, Sparse linear algebra and iterative solvers into Chapel.

Concurrent-Safe Memory Reclamation Systems

Currently Chapel has support for ‘shared’ lifetime-managed objects, which is implemented using reference-counting. Unfortunately reference counting...

Unit Test Framework

Deployment is the last stage in the application development process and before that, any application undergoes a comprehensive testing process to...

2017

3 projects

Official year page

To write a new cryptography module for Chapel that provides an interface to standard cryptography libraries that support common algorithms.

This project aims to enable Chapel with its own module which would be a collection of both secure hash functions(such as SHA256) and various...

Distributed Data Structures

Built-in data structures are a necessity for any budding language, and in a language where distributed computing is at its core, data structures that...

Improve LLVM backend for Chapel compiler

This project is about improving LLVM backend for chapel compiler. Improvements consist of improving loop vectorization by adding proper metadata and...

2016

2 projects

Official year page

Reporting stack traces on halt

Chapel is a programming language that wants to make the development of parallel applications easier. This project wants to extend the Chapel runtime...

Incremental Compilation

Currently, re-compiling a Chapel program would mean re-compiling the parts that haven’t changed, including the functions that haven’t been altered...