Roadmap‐SSEC‐Round1‐2025 - uw-ssec/HPyX GitHub Wiki
The HPyX Roadmap SSEC Round 1 2025
Project timeline: April - July 2025
The following is a roadmap for HPyX development to enable Python access for HPX C++ Library. This roadmap is a way to keep track of the scope of the project and it may change based on any discoveries along the way. Some tasks may be labeled as "investigations" or "explorations", these will be more of a side task that a developer would do, which can result in a scope or design changes.
Epic: Core HPyX Python Binding and setup
For this chunk of work for HPyX our primary goals are
- Develop binding for several core HPX features.
Some examples can be found in Rod's repository:
- Core HPX Runtime Bindings
- Asynchronous Programming Model
- Parallel Algorithms & Execution Policies
- Setup the HPyX package so that it meets the PyOpenSci Packaging standard, and ready for release
- Setup a testing, benchmarking, and documentation framework.
Milestones
The following milestones have been laid out to capture the tasks to meet the goals above
Foundation & Architecture
- Set up project structure, build system, and CI/CD pipeline https://github.com/uw-ssec/HPyX/issues/2
- Establish coding standards and documentation workflow and automated tooling
- Develop an architecture for Python Binding
Core HPX Runtime Bindings
- Bind HPX runtime initialization and finalization functions
- Expose HPX thread management and execution contexts to Python
Asynchronous Programming Model
- Bind HPX
async
function
Parallel Algorithms & Execution Policies
- Bind HPX parallel algorithms
for_loop
transform
reduce
sort
for_each
- Ensure parallel algorithms works with numpy arrays and other python data structures (lists, sets, etc)
Testing & Validation Framework
- Develop comprehensive unit test suite for all Python bindings (Include in actions)
- Implement performance benchmarking suite (Include in actions)
Documentation & Developer Experience
- Write comprehensive API documentation with examples
- Develop usage guide for HPyX for Python developers
Packaging & Distribution
- Implement cross-platform build system (Linux, macOS, Windows)
- Establish version management and release process
- Create PyPI deployment
- Create conda-forge recipe for easy installation
Community Engagement
- Create Zenodo for the package