Fetching the latest programs, projects, and workspace data.
A Productive Parallel Programming Language
Showing 5 of 16 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Divye Nayyar
<p>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 different goroutines. A similar library can be added to chapel to support efficient communication between various chapel tasks in a lock-free manner. The channels would enable a user to decompose algorithms into tasks in a more logical way. The work will involve studying the performance against the original Go channels.</p>
Mentors: Student: Lakshya Singh
<p>The Proposal contains details for implementation of <strong>Socket Module</strong> to be completed within the timeline of GSOC in the summers. Key elements of the proposal are:</p> <ul> <li>Socket Module to integrate C Socket Calls into Chapel Module.</li> <li>Writing good unit tests and documentation.</li> <li>Performance testing for finding out the best possible implementation.</li> <li>Ensuring Concurrency, Parallelism and Non-Blocking Nature of Procedures.</li> </ul>
Mentors: Student: Prasanth Duvvuri
<p>Matrix Exponentials are used in solving systems of linear differential equations. It is also widely used in Quantum Mechanics (Schrodinger's equation: Describes how a quantum particle behaves) and Control Theory. I had a chance to go through the “Scaling and Squaring Algorithm” for matrix exponentiation. In this paper, The technique to calculate the "pade estimate" to categorize which "pade value" to be used for optimization has interested me to pursue this project. I also hope to understand and achieve the parallelization of the current task for efficient computation of matrix exponential and be challenged by the intricacies of Chapel.</p>
Mentors: Student: Aniket Mathur
<p>Google Protocol Buffers is a language-neutral serialization library. However Chapel support for Protocol Buffers has not been investigated. Nonetheless, there are a number of interoperability scenarios that would benefit from having such a feature. This feature is something that many other projects can build on - including calling Python from Chapel or creating a Chapel distributed in-memory key-value storage service.The protocol buffers compiler supports a few languages directly but also includes a plugin mechanism to generate code for other languages. These plugins can be written in the target language.</p> <p>The project involves the following:</p> <ul> <li>Create a Chapel library that works with basic Protocol Buffers functions.</li> <li>Implement a Chapel plugin for the protocol buffers compiler.</li> <li>Demonstrate this tool in an example integration using protocol buffers.</li> </ul>