Project List¶
This is the project list for Google Summer of Code with Chapel. The list is constantly growing and evolving, but it should remain relatively static during the Google Summer of Code application phase.
Note
If you are interested in applying for Chapel’s Google Summer of Code 2017, please visit the application instructions page:
Student Submitted Projects¶
The project ideas in this list have been compiled by Chapel developers. Students may submit proposals based on existing ideas here or new ideas altogether.
Libraries and Applications¶
Your favorite application or library in Chapel
Description: | Build any application in Chapel that might show off its productivity, performance, and/or elegance. This could be anything from a port of an email client library to a standalone molecular dynamics engine. The world is your oyster, and we’re excited to mentor you along the way to building your application in Chapel. |
---|---|
Expected results: | |
Expectations will be tuned specifically to the project. In a general sense, the application or library should reach a state that is ready for public use. |
|
Optional knowledge: | |
|
|
Mentor(s): | Andrea Francesco Iuorio, Ben Albrecht, Engin Kayraklioglu, Michael Ferguson |
HDF5 Library
Description: | HDF5 (note: not HDFS) is a common data interchange format for scientific applications. Since Chapel is intended to work well for scientific programming, having HDF5 support is important. |
---|---|
Expected results: | |
|
|
Required knowledge: | |
Some form of background in scientific computing. |
|
Optional knowledge: | |
Knowledge of HDF5 or Chapel would be a plus. |
|
Mentor(s): | Michael Ferguson |
Cryptography Library
Description: | Implement a library that provides common cryptographic algorithms and protocols, such as those provided in OpenSSL or libsodium. |
---|---|
Expected results: | |
A new cryptography module in Chapel that provides an interface to common algorithms and protocols, such as in OpenSSL or libsodium. |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Andrea Francesco Iuorio |
Linear Algebra Library
Description: | Chapel currently supports linear algebra through BLAS/LAPACK-wrappers. This project involves implementing a linear algebra library from the ground up, supporting distributed operations on dense and sparse matrices in native Chapel code. |
---|---|
Expected results: | |
A new linear algebra module or extension to the existing linear algebra library, that supports some subset of the operations available in BLAS or LAPACK. |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Engin Kayraklioglu, Ben Albrecht |
Distributed Data Structures Library
Description: | Build a library of distributed data structures such as stacks, queues, linked lists, etc., and optimize the performance of their operations. |
---|---|
Expected results: | |
A new distributed data structures module. |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Engin Kayraklioglu |
Compatibility¶
Chapel Online
Description: | Build a web service that compiles Chapel code online and returns the output. Alternatively, this could be done as a contribution to an existing website that supports other languages. Some examples of this are: |
---|---|
Expected results: | |
A web service that compiles and runs Chapel code online. |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Ben Albrecht |
Jupyter kernel for Chapel
Description: | Currently, the Chapel interpreter is in its early infancy. We fully expect to contribute a Jupyter kernel with our interpreted version. In the meantime, we would like to contribute a Jupyter kernel for the compiled implementation, laying the groundwork for the future interpreted Chapel kernel. Some information and examples: |
---|---|
Expected results: | |
A functioning Jupyter kernel for Chapel |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Ben Albrecht |
Compiler¶
Improve LLVM Support
Description: |
|
---|---|
Expected results: | |
Improvements to the LLVM code generation capability of the Chapel
compiler. Hopefully this also includes performance improvements for some
Chapel programs compiled with |
|
Required knowledge: | |
|
|
Mentor(s): | Michael Ferguson |
Runtime¶
RCU Runtime Support
Description: |
|
---|
Infrastructure¶
Improving Testing Framework
Description: | The Chapel testing system is a key piece of technology for the Chapel developer. We use it as a harness for doing test-driven development, for performing sanity checks on code before committing it, for bug and issue tracking, and for nightly correctness and performance regression testing. This testing system is described in detail here. This project involves implementing a variety of improvements in the testing framework. Some examples include:
|
---|---|
Expected results: | |
An improvement in the usability, maintenance, and functionality of the Chapel testing framework. |
|
Required knowledge: | |
|
|
Optional knowledge: | |
|
|
Mentor(s): | Ben Albrecht |