Below is a roadmap of important features that we are planning to implement. Not everything is included here, just the ones we are likely to implement in the not-so-distant future.
Order and priority is subject to change. If you want to see new features not listed here, or would like features further down the pipeline given higher priority, don’t hesitate to tell us. We can also add a poll to help determine which features are more important for users.
- Support interactive sessions using multiple hosts (in progress)
- Array/Group Sections (allow invoking methods on a subset of members of a collection using slicing notation) (in progress). This is implemented on a branch leveraging ckmulticast functionality of Charm++. We are working on merging this, and there are also other improvements planned.
- Support Jupyter notebooks
- Expose remaining Charm++ features (quiescence detection, TRAM, etc)
Highly scalable parallel map framework(see experimental
charm.poolin recent releases)
- Global (distributed) NumPy arrays (i.e. support NumPy API, including arrays, access/modify specific elements, array operations, etc. for distributed arrays that don’t fit on a single host). Possibly something similar with other popular data structures like pandas dataframes.
- Improve use of RDMA features of Charm++. Make transparent use of RDMA (especially for large arrays).
- Simplified API for alternative abstractions running on top of charm like MapReduce, BSP model, task scheduling