Chapel Research and Collaborations
This page lists groups who are working on Chapel-related research and development external to the core development team. If you believe your project belongs on this list (or it needs updating), please let us know. We encourage Chapel-related R&D and include a list of possible research topics at the bottom of this page.
Active Groups:
- Berkeley Lab: We work closely with the GASNet team whose portable communication library serves as our portable distributed-memory communication infrastructure.
- University of Arizona, Haverford College: We are investigating how Chapel Iterators can enable the use of complex tiling strategies like diamond tiling by programmers in stencil codes with Ian Bertolacci, Michelle Strout, David Wonnacott (and previously, Cathie Olschanowsky at Colorado State University).
Past Groups
Possibilities for Collaboration:
- Memory Management: garbage collection, region-based memory management, multiresolution memory management, ...
- Task Management: task throttling, work stealing, task teams, language concepts for managing scheduling policies, ...
- Parallel I/O: parallel file I/O, scientific file formats, parallel disks, extend domain maps to support out-of-core computation, ...
- Resiliency: fault tolerance, checkpointing, resilient domain maps, ...
- Interoperability: mechanisms, semantics, access to distributed data structures in situ, ...
- Application Studies: adaptive mesh refinement, finite element methods, "big data" computations, other killer apps, ...
- Performance Studies and Optimizations: where are we currently lacking and how could we do better?
- Index and Subdomain Types: role of index and subdomain types in optimizations and Chapel semantics, ...
- Targeting Different Platforms: Cloud-based computing systems, Windows, accelerators, FPGAs, ...
- Runtime Compilation: impact of JIT compilation on Chapel, ...
- Autotuning: explore the use of autotuning to optimize parameters in user-defined distributions or more general Chapel code, ...
- Tools: debuggers, performance analysis, IDEs, interpreters, valgrind-style correctness checkers, visualizations, ...
- Libraries: interface to standard libraries, port standard libraries, language improvements to aid library creation, ...
- Data-intensive Computation: out-of-core computation, database-style operations, ...
- Domain-specific Languages: build DSLs on top of Chapel, language support for building them within Chapel, ...
- or pitch your own idea...