rhapsody-py 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. rhapsody_py-0.1.0/LICENSE.md +24 -0
  2. rhapsody_py-0.1.0/MANIFEST.in +6 -0
  3. rhapsody_py-0.1.0/PKG-INFO +207 -0
  4. rhapsody_py-0.1.0/README.md +137 -0
  5. rhapsody_py-0.1.0/docs/LICENSE.md +24 -0
  6. rhapsody_py-0.1.0/docs/about.md +108 -0
  7. rhapsody_py-0.1.0/docs/api/index.md +5 -0
  8. rhapsody_py-0.1.0/docs/changelogs.md +1 -0
  9. rhapsody_py-0.1.0/docs/contributing.md +444 -0
  10. rhapsody_py-0.1.0/docs/getting-started/advanced-usage.md +415 -0
  11. rhapsody_py-0.1.0/docs/getting-started/configuration.md +108 -0
  12. rhapsody_py-0.1.0/docs/getting-started/index.md +17 -0
  13. rhapsody_py-0.1.0/docs/getting-started/installation.md +44 -0
  14. rhapsody_py-0.1.0/docs/getting-started/quick-start.md +78 -0
  15. rhapsody_py-0.1.0/docs/index.md +45 -0
  16. rhapsody_py-0.1.0/docs/integrations.md +374 -0
  17. rhapsody_py-0.1.0/docs/project/index.md +43 -0
  18. rhapsody_py-0.1.0/docs/project/nsf-award.md +53 -0
  19. rhapsody_py-0.1.0/docs/project/publications.md +14 -0
  20. rhapsody_py-0.1.0/docs/project/roadmap.md +14 -0
  21. rhapsody_py-0.1.0/docs/project/team.md +29 -0
  22. rhapsody_py-0.1.0/pyproject.toml +202 -0
  23. rhapsody_py-0.1.0/setup.cfg +4 -0
  24. rhapsody_py-0.1.0/src/rhapsody/__init__.py +46 -0
  25. rhapsody_py-0.1.0/src/rhapsody/api/__init__.py +33 -0
  26. rhapsody_py-0.1.0/src/rhapsody/api/errors.py +112 -0
  27. rhapsody_py-0.1.0/src/rhapsody/api/session.py +310 -0
  28. rhapsody_py-0.1.0/src/rhapsody/api/task.py +623 -0
  29. rhapsody_py-0.1.0/src/rhapsody/backends/__init__.py +51 -0
  30. rhapsody_py-0.1.0/src/rhapsody/backends/base.py +153 -0
  31. rhapsody_py-0.1.0/src/rhapsody/backends/constants.py +441 -0
  32. rhapsody_py-0.1.0/src/rhapsody/backends/discovery.py +205 -0
  33. rhapsody_py-0.1.0/src/rhapsody/backends/execution/__init__.py +43 -0
  34. rhapsody_py-0.1.0/src/rhapsody/backends/execution/concurrent.py +305 -0
  35. rhapsody_py-0.1.0/src/rhapsody/backends/execution/dask_parallel.py +419 -0
  36. rhapsody_py-0.1.0/src/rhapsody/backends/execution/dragon.py +4277 -0
  37. rhapsody_py-0.1.0/src/rhapsody/backends/execution/radical_pilot.py +810 -0
  38. rhapsody_py-0.1.0/src/rhapsody/backends/inference/__init__.py +17 -0
  39. rhapsody_py-0.1.0/src/rhapsody/backends/inference/vllm.py +707 -0
  40. rhapsody_py-0.1.0/src/rhapsody/logger.py +109 -0
  41. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/PKG-INFO +207 -0
  42. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/SOURCES.txt +57 -0
  43. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/dependency_links.txt +1 -0
  44. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/entry_points.txt +4 -0
  45. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/requires.txt +53 -0
  46. rhapsody_py-0.1.0/src/rhapsody_py.egg-info/top_level.txt +1 -0
  47. rhapsody_py-0.1.0/tests/conftest.py +184 -0
  48. rhapsody_py-0.1.0/tests/integration/test_backend_functionality.py +444 -0
  49. rhapsody_py-0.1.0/tests/integration/test_task_api_backend_integration.py +308 -0
  50. rhapsody_py-0.1.0/tests/performance/test_api_performance.py +131 -0
  51. rhapsody_py-0.1.0/tests/unit/test_backend_base.py +71 -0
  52. rhapsody_py-0.1.0/tests/unit/test_backend_constants.py +344 -0
  53. rhapsody_py-0.1.0/tests/unit/test_backend_discovery.py +259 -0
  54. rhapsody_py-0.1.0/tests/unit/test_backend_execution_dask_parallel.py +285 -0
  55. rhapsody_py-0.1.0/tests/unit/test_backend_execution_dragon.py +390 -0
  56. rhapsody_py-0.1.0/tests/unit/test_backend_execution_radical_pilot.py +472 -0
  57. rhapsody_py-0.1.0/tests/unit/test_dask_custom_cluster.py +32 -0
  58. rhapsody_py-0.1.0/tests/unit/test_session.py +189 -0
  59. rhapsody_py-0.1.0/tests/unit/test_task_api.py +534 -0
@@ -0,0 +1,24 @@
1
+
2
+ rhapsody is licensed under the MIT License (MIT)
3
+ -----------------------------------------------------
4
+
5
+ Copyright (C) 2023 by the RADICAL-Cybertools Team
6
+ (info@radical-cybertools.org)
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to
10
+ deal in the Software without restriction, including without limitation the
11
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12
+ sell copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24
+ IN THE SOFTWARE.
@@ -0,0 +1,6 @@
1
+ include README.md
2
+ include LICENSE
3
+ recursive-include src/rhapsody *.py
4
+ recursive-include tests *.py
5
+ recursive-include docs *.md *.rst
6
+ recursive-include bin *.md
@@ -0,0 +1,207 @@
1
+ Metadata-Version: 2.4
2
+ Name: rhapsody-py
3
+ Version: 0.1.0
4
+ Summary: Runtime system for executing heterogeneous HPC-AI workflows with dynamic task graphs on high-performance computing infrastructures.
5
+ Author-email: RADICAL Research Team <info@radical.org>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/stride-research/rhapsody
8
+ Project-URL: Repository, https://github.com/stride-research/rhapsody
9
+ Project-URL: Issues, https://github.com/stride-research/rhapsody/issues
10
+ Keywords: hpc,ai,workflow,task-orchestration,distributed-computing,high-performance-computing,scientific-computing
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Topic :: System :: Logging
21
+ Classifier: Topic :: System :: Monitoring
22
+ Classifier: Intended Audience :: Developers
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE.md
26
+ Requires-Dist: pydantic>=2.0.0
27
+ Requires-Dist: typeguard>=4.0.0
28
+ Requires-Dist: requests>=2.25.0
29
+ Provides-Extra: dask
30
+ Requires-Dist: dask[distributed]>=2023.0.0; extra == "dask"
31
+ Provides-Extra: radical-pilot
32
+ Requires-Dist: radical.pilot>=1.30.0; extra == "radical-pilot"
33
+ Provides-Extra: dragon
34
+ Requires-Dist: dragonhpc; extra == "dragon"
35
+ Provides-Extra: vllm-dragon
36
+ Requires-Dist: aiohttp>=3.8.0; extra == "vllm-dragon"
37
+ Requires-Dist: pyyaml>=6.0; extra == "vllm-dragon"
38
+ Provides-Extra: dev
39
+ Requires-Dist: ruff>=0.8.0; extra == "dev"
40
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
41
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
42
+ Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
43
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
44
+ Requires-Dist: types-requests>=2.31.0; extra == "dev"
45
+ Requires-Dist: types-aiofiles>=23.0.0; extra == "dev"
46
+ Requires-Dist: pre-commit>=4.3.0; extra == "dev"
47
+ Requires-Dist: docformatter>=1.7.0; extra == "dev"
48
+ Requires-Dist: tomli>=2.2.0; extra == "dev"
49
+ Requires-Dist: detect-secrets>=1.5.0; extra == "dev"
50
+ Provides-Extra: docs
51
+ Requires-Dist: mkdocs>=1.5.0; extra == "docs"
52
+ Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
53
+ Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "docs"
54
+ Requires-Dist: mkdocs-gen-files>=0.5.0; extra == "docs"
55
+ Requires-Dist: mkdocs-literate-nav>=0.6.0; extra == "docs"
56
+ Requires-Dist: mkdocs-section-index>=0.3.0; extra == "docs"
57
+ Provides-Extra: ci
58
+ Requires-Dist: tox>=4.0.0; extra == "ci"
59
+ Requires-Dist: tox-gh-actions>=3.0.0; extra == "ci"
60
+ Requires-Dist: build>=0.10.0; extra == "ci"
61
+ Requires-Dist: twine>=4.0.0; extra == "ci"
62
+ Requires-Dist: psutil>=5.9.0; extra == "ci"
63
+ Provides-Extra: examples
64
+ Requires-Dist: rhapsody-py[dask]; extra == "examples"
65
+ Provides-Extra: backends
66
+ Requires-Dist: rhapsody-py[dask,dragon,radical_pilot,vllm-dragon]; extra == "backends"
67
+ Provides-Extra: all
68
+ Requires-Dist: rhapsody-py[backends,ci,dev,docs,examples]; extra == "all"
69
+ Dynamic: license-file
70
+
71
+ # RHAPSODY
72
+
73
+ [![Build Status](https://github.com/radical-cybertools/rhapsody/actions/workflows/ci.yml/badge.svg)](https://github.com/radical-cybertools/rhapsody/actions/workflows/ci.yml)
74
+ [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://radical-cybertools.github.io/rhapsody/)
75
+ [![Python Version](https://img.shields.io/pypi/pyversions/rhapsody-py.svg)](https://pypi.org/project/rhapsody-py/)
76
+ [![PyPI Version](https://img.shields.io/pypi/v/rhapsody-py.svg)](https://pypi.org/project/rhapsody-py/)
77
+ [![License](https://img.shields.io/pypi/l/rhapsody-py.svg)](https://github.com/radical-cybertools/rhapsody/blob/main/LICENSE.md)
78
+
79
+ **RHAPSODY** – **R**untime for **H**eterogeneous **AP**plications, **S**ervice **O**rchestration and **DY**namism
80
+
81
+ A unified runtime for executing **AI and HPC workloads** on supercomputing infrastructures. RHAPSODY seamlessly integrates traditional scientific computing with AI inference, enabling complex workflows that combine simulation, analysis, and machine learning.
82
+
83
+ ## What RHAPSODY Offers
84
+
85
+ - **Unified AI-HPC API**: Single interface for compute tasks and AI inference
86
+ - **Multi-Backend Execution**: Run on local machines, HPC clusters ([Dragon](https://dragonhpc.github.io/dragon/doc/_build/html/index.html)), or distributed systems ([Dask](https://docs.dask.org/en/stable/))
87
+ - **Async-First Design**: Native asyncio integration for efficient task orchestration
88
+ - **Integratable Design**: RHAPSODY is designed to be integratable with existing workflows and tools such as [AsyncFlow](https://github.com/radical-cybertools/asyncflow) and [LangGraph/FlowGentic](https://github.com/stride-research/flowgentic).
89
+ - **Scale-Ready**: Scale your workload and workflows to thousands of tasks and nodes.
90
+
91
+ ## Quick Example: AI-HPC Workflow
92
+
93
+ ```python
94
+ import asyncio
95
+ from rhapsody.api import Session, ComputeTask, AITask
96
+ from rhapsody.backends import DragonExecutionBackendV3, DragonVllmInferenceBackend
97
+
98
+ async def main():
99
+ # Initialize backends
100
+ hpc_backend = await DragonExecutionBackendV3(name="hpc", num_workers=128)
101
+ ai_backend = await DragonVllmInferenceBackend(name="vllm", model="Qwen2.5-7B")
102
+
103
+ # Create session with multiple backends
104
+ async with Session(backends=[hpc_backend, ai_backend]) as session:
105
+
106
+ # HPC simulation task
107
+ simulation = ComputeTask(
108
+ executable="./simulate",
109
+ arguments=["--config", "params.yaml"],
110
+ backend=hpc_backend.name
111
+ )
112
+
113
+ # AI analysis task
114
+ analysis = AITask(
115
+ prompt="Analyze the simulation results and identify key patterns...",
116
+ backend=ai_backend.name
117
+ )
118
+
119
+ # Submit and execute
120
+ await session.submit_tasks([simulation, analysis])
121
+
122
+ # Wait for completion (tasks are awaitable!)
123
+ sim_result = await simulation
124
+ ai_result = await analysis
125
+
126
+ print(f"Simulation: {sim_result['state']}")
127
+ print(f"AI Analysis: {ai_result['output']}")
128
+
129
+ asyncio.run(main())
130
+ ```
131
+
132
+ ## Installation
133
+
134
+ ```bash
135
+ # Basic installation
136
+ pip install rhapsody-py
137
+
138
+ # With specific backends
139
+ pip install rhapsody-py[dask] # Dask distributed computing
140
+ pip install rhapsody-py[dragon] # Dragon runtime (Python 3.10-3.12)
141
+
142
+ # Development
143
+ pip install rhapsody-py[dev]
144
+ ```
145
+
146
+
147
+ ## Documentation
148
+
149
+ - **Full Documentation**: https://radical-cybertools.github.io/rhapsody/
150
+ - **API Reference**: https://radical-cybertools.github.io/rhapsody/api/
151
+ - **Examples**: See `examples/` directory
152
+
153
+ ## Contributing
154
+
155
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
156
+
157
+ ### Development Workflow
158
+
159
+ 1. Fork the repository
160
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
161
+ 3. Make your changes
162
+ 4. Add tests for new functionality
163
+ 5. Ensure all tests pass (`make test-regular`)
164
+ 6. Run code quality checks (`pre-commit run --all-files`)
165
+ 7. Commit your changes (`git commit -m 'Add amazing feature'`)
166
+ 8. Push to the branch (`git push origin feature/amazing-feature`)
167
+ 9. Open a Pull Request
168
+
169
+ ### Reporting Issues
170
+
171
+ Please use the [GitHub issue tracker](https://github.com/radical-cybertools/rhapsody/issues) to report bugs or request features.
172
+
173
+ ## License
174
+
175
+ RHAPSODY is licensed under the [MIT License](LICENSE.md).
176
+
177
+ ## Acknowledgments
178
+
179
+ RHAPSODY is developed by the [RADICAL Research Group](http://radical.rutgers.edu/) at Rutgers University.
180
+
181
+ ### Related Projects
182
+
183
+ - [AsyncFlow](https://github.com/radical-cybertools/asyncflow): Asynchronous workflow management
184
+
185
+ ## NSF-Funded Project
186
+
187
+ RHAPSODY is supported by the National Science Foundation (NSF) under Award ID [2103986](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2103986). This collaborative project aims to advance the state-of-the-art in heterogeneous workflow execution for scientific computing.
188
+
189
+ ### Citations
190
+
191
+ If you use RHAPSODY in your research, please cite:
192
+
193
+ ```bibtex
194
+ @software{rhapsody2024,
195
+ title={RHAPSODY: Runtime for Heterogeneous Applications, Service Orchestration and Dynamism},
196
+ author={RADICAL Research Team},
197
+ year={2024},
198
+ url={https://github.com/radical-cybertools/rhapsody},
199
+ version={0.1.0}
200
+ }
201
+ ```
202
+
203
+ ## Support
204
+
205
+ - **Documentation**: https://radical-cybertools.github.io/rhapsody/
206
+ - **Issues**: https://github.com/radical-cybertools/rhapsody/issues
207
+ - **Discussions**: https://github.com/radical-cybertools/rhapsody/discussions
@@ -0,0 +1,137 @@
1
+ # RHAPSODY
2
+
3
+ [![Build Status](https://github.com/radical-cybertools/rhapsody/actions/workflows/ci.yml/badge.svg)](https://github.com/radical-cybertools/rhapsody/actions/workflows/ci.yml)
4
+ [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://radical-cybertools.github.io/rhapsody/)
5
+ [![Python Version](https://img.shields.io/pypi/pyversions/rhapsody-py.svg)](https://pypi.org/project/rhapsody-py/)
6
+ [![PyPI Version](https://img.shields.io/pypi/v/rhapsody-py.svg)](https://pypi.org/project/rhapsody-py/)
7
+ [![License](https://img.shields.io/pypi/l/rhapsody-py.svg)](https://github.com/radical-cybertools/rhapsody/blob/main/LICENSE.md)
8
+
9
+ **RHAPSODY** – **R**untime for **H**eterogeneous **AP**plications, **S**ervice **O**rchestration and **DY**namism
10
+
11
+ A unified runtime for executing **AI and HPC workloads** on supercomputing infrastructures. RHAPSODY seamlessly integrates traditional scientific computing with AI inference, enabling complex workflows that combine simulation, analysis, and machine learning.
12
+
13
+ ## What RHAPSODY Offers
14
+
15
+ - **Unified AI-HPC API**: Single interface for compute tasks and AI inference
16
+ - **Multi-Backend Execution**: Run on local machines, HPC clusters ([Dragon](https://dragonhpc.github.io/dragon/doc/_build/html/index.html)), or distributed systems ([Dask](https://docs.dask.org/en/stable/))
17
+ - **Async-First Design**: Native asyncio integration for efficient task orchestration
18
+ - **Integratable Design**: RHAPSODY is designed to be integratable with existing workflows and tools such as [AsyncFlow](https://github.com/radical-cybertools/asyncflow) and [LangGraph/FlowGentic](https://github.com/stride-research/flowgentic).
19
+ - **Scale-Ready**: Scale your workload and workflows to thousands of tasks and nodes.
20
+
21
+ ## Quick Example: AI-HPC Workflow
22
+
23
+ ```python
24
+ import asyncio
25
+ from rhapsody.api import Session, ComputeTask, AITask
26
+ from rhapsody.backends import DragonExecutionBackendV3, DragonVllmInferenceBackend
27
+
28
+ async def main():
29
+ # Initialize backends
30
+ hpc_backend = await DragonExecutionBackendV3(name="hpc", num_workers=128)
31
+ ai_backend = await DragonVllmInferenceBackend(name="vllm", model="Qwen2.5-7B")
32
+
33
+ # Create session with multiple backends
34
+ async with Session(backends=[hpc_backend, ai_backend]) as session:
35
+
36
+ # HPC simulation task
37
+ simulation = ComputeTask(
38
+ executable="./simulate",
39
+ arguments=["--config", "params.yaml"],
40
+ backend=hpc_backend.name
41
+ )
42
+
43
+ # AI analysis task
44
+ analysis = AITask(
45
+ prompt="Analyze the simulation results and identify key patterns...",
46
+ backend=ai_backend.name
47
+ )
48
+
49
+ # Submit and execute
50
+ await session.submit_tasks([simulation, analysis])
51
+
52
+ # Wait for completion (tasks are awaitable!)
53
+ sim_result = await simulation
54
+ ai_result = await analysis
55
+
56
+ print(f"Simulation: {sim_result['state']}")
57
+ print(f"AI Analysis: {ai_result['output']}")
58
+
59
+ asyncio.run(main())
60
+ ```
61
+
62
+ ## Installation
63
+
64
+ ```bash
65
+ # Basic installation
66
+ pip install rhapsody-py
67
+
68
+ # With specific backends
69
+ pip install rhapsody-py[dask] # Dask distributed computing
70
+ pip install rhapsody-py[dragon] # Dragon runtime (Python 3.10-3.12)
71
+
72
+ # Development
73
+ pip install rhapsody-py[dev]
74
+ ```
75
+
76
+
77
+ ## Documentation
78
+
79
+ - **Full Documentation**: https://radical-cybertools.github.io/rhapsody/
80
+ - **API Reference**: https://radical-cybertools.github.io/rhapsody/api/
81
+ - **Examples**: See `examples/` directory
82
+
83
+ ## Contributing
84
+
85
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
86
+
87
+ ### Development Workflow
88
+
89
+ 1. Fork the repository
90
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
91
+ 3. Make your changes
92
+ 4. Add tests for new functionality
93
+ 5. Ensure all tests pass (`make test-regular`)
94
+ 6. Run code quality checks (`pre-commit run --all-files`)
95
+ 7. Commit your changes (`git commit -m 'Add amazing feature'`)
96
+ 8. Push to the branch (`git push origin feature/amazing-feature`)
97
+ 9. Open a Pull Request
98
+
99
+ ### Reporting Issues
100
+
101
+ Please use the [GitHub issue tracker](https://github.com/radical-cybertools/rhapsody/issues) to report bugs or request features.
102
+
103
+ ## License
104
+
105
+ RHAPSODY is licensed under the [MIT License](LICENSE.md).
106
+
107
+ ## Acknowledgments
108
+
109
+ RHAPSODY is developed by the [RADICAL Research Group](http://radical.rutgers.edu/) at Rutgers University.
110
+
111
+ ### Related Projects
112
+
113
+ - [AsyncFlow](https://github.com/radical-cybertools/asyncflow): Asynchronous workflow management
114
+
115
+ ## NSF-Funded Project
116
+
117
+ RHAPSODY is supported by the National Science Foundation (NSF) under Award ID [2103986](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2103986). This collaborative project aims to advance the state-of-the-art in heterogeneous workflow execution for scientific computing.
118
+
119
+ ### Citations
120
+
121
+ If you use RHAPSODY in your research, please cite:
122
+
123
+ ```bibtex
124
+ @software{rhapsody2024,
125
+ title={RHAPSODY: Runtime for Heterogeneous Applications, Service Orchestration and Dynamism},
126
+ author={RADICAL Research Team},
127
+ year={2024},
128
+ url={https://github.com/radical-cybertools/rhapsody},
129
+ version={0.1.0}
130
+ }
131
+ ```
132
+
133
+ ## Support
134
+
135
+ - **Documentation**: https://radical-cybertools.github.io/rhapsody/
136
+ - **Issues**: https://github.com/radical-cybertools/rhapsody/issues
137
+ - **Discussions**: https://github.com/radical-cybertools/rhapsody/discussions
@@ -0,0 +1,24 @@
1
+
2
+ rhapsody is licensed under the MIT License (MIT)
3
+ -----------------------------------------------------
4
+
5
+ Copyright (C) 2023 by the RADICAL-Cybertools Team
6
+ (info@radical-cybertools.org)
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to
10
+ deal in the Software without restriction, including without limitation the
11
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12
+ sell copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24
+ IN THE SOFTWARE.
@@ -0,0 +1,108 @@
1
+ # About RHAPSODY
2
+
3
+ RHAPSODY (<b>R</b>untime for <b>H</b>eterogeneous <b>AP</b>plications, <b>S</b>ervice <b>O</b>rchestration and <b>DY</b>namism) is a cutting-edge runtime system designed to address the evolving challenges of modern scientific computing. As computational workflows become increasingly complex, combining traditional HPC simulations with AI/ML workloads, there is a critical need for systems that can efficiently orchestrate heterogeneous tasks across diverse computing resources.
4
+
5
+ ## Vision
6
+
7
+ Our vision is to create a unified runtime that seamlessly bridges the gap between traditional high-performance computing and emerging AI/ML paradigms, enabling scientists to focus on their research rather than the complexities of workflow orchestration.
8
+
9
+ ## Core Philosophy
10
+
11
+ RHAPSODY is built on several key principles:
12
+
13
+ ### Heterogeneity as a First-Class Citizen
14
+
15
+ Modern scientific workflows are inherently heterogeneous, combining:
16
+
17
+ - Traditional HPC simulations (CPU-intensive)
18
+ - Machine learning training and inference (GPU-intensive)
19
+ - Data processing and analysis tasks
20
+ - I/O-intensive operations
21
+
22
+ RHAPSODY treats this heterogeneity as a fundamental characteristic rather than an afterthought.
23
+
24
+ ### Dynamic Adaptation
25
+
26
+ Scientific workflows are rarely static. RHAPSODY supports:
27
+
28
+ - Runtime modification of task graphs based on intermediate results
29
+ - Adaptive resource allocation
30
+ - Dynamic load balancing across heterogeneous resources
31
+
32
+ ### Platform Abstraction
33
+
34
+ Scientists should not need to be experts in every computing platform. RHAPSODY provides:
35
+
36
+ - Unified interfaces across different HPC systems
37
+ - Abstraction of resource manager specifics
38
+ - Portable workflow descriptions
39
+
40
+ ## Technical Innovation
41
+
42
+ RHAPSODY introduces several technical innovations:
43
+
44
+ ### Pluggable Backend Architecture
45
+
46
+ The system supports multiple execution backends, each optimized for different scenarios:
47
+
48
+ - **Concurrent Backend**: For shared-memory parallel execution
49
+ - **Dask Backend**: For distributed Python workloads
50
+ - **RADICAL-Pilot Backend**: For large-scale HPC execution
51
+
52
+ ### AsyncFlow Integration
53
+
54
+ Full compatibility with the [AsyncFlow](https://github.com/radical-cybertools/radical.asyncflow) workflow management system, providing:
55
+
56
+ - Standardized workflow descriptions
57
+ - Tool interoperability
58
+ - Community ecosystem benefits
59
+
60
+ ### State-of-the-Art Monitoring
61
+
62
+ Comprehensive monitoring and introspection capabilities for:
63
+
64
+ - Real-time task execution tracking
65
+ - Performance analysis and optimization
66
+ - Fault detection and recovery
67
+
68
+ ## Research Impact
69
+
70
+ RHAPSODY enables breakthrough research in numerous domains:
71
+
72
+ - **Climate Science**: Coupling atmospheric simulations with ML-based post-processing
73
+ - **Materials Science**: Integrating quantum simulations with ML property prediction
74
+ - **Computational Biology**: Combining molecular dynamics with deep learning analysis
75
+
76
+ ## Project Timeline
77
+
78
+ RHAPSODY development follows a structured timeline aligned with NSF project milestones:
79
+
80
+ - **Phase 1** (2021-2022): Core architecture and backend development
81
+ - **Phase 2** (2022-2024): Integration with existing workflow systems
82
+ - **Phase 3** (2024-2026): Production deployment and optimization
83
+
84
+ ## Team and Collaboration
85
+
86
+ RHAPSODY is developed by the [RADICAL Research Team](https://radical.rutgers.edu/) at Rutgers University, in collaboration with:
87
+
88
+ - DOE National laboratories
89
+ - Campus supercomputing centers
90
+ - Academic research institutions
91
+
92
+ ## Open Science Commitment
93
+
94
+ We are committed to open science principles:
95
+
96
+ - **Open Source**: All code is publicly available under MIT license
97
+ - **Open Data**: Benchmarks and performance data are shared publicly
98
+ - **Open Standards**: We contribute to community standards and protocols
99
+ - **Open Collaboration**: We welcome contributions from the broader community
100
+
101
+ ## Future Directions
102
+
103
+ Looking ahead, RHAPSODY will continue to evolve to meet emerging needs:
104
+
105
+ - Enhanced support for quantum computing integration
106
+ - Advanced AI/ML workflow optimization
107
+ - Edge computing and IoT integration for scientific workflows
108
+ - Expanded ecosystem of compatible tools and frameworks
@@ -0,0 +1,5 @@
1
+ # API Reference
2
+
3
+ Welcome to the RHAPSODY API reference documentation.
4
+
5
+ Browse the modules in the sidebar to explore the API.
@@ -0,0 +1 @@
1
+ --8<-- "CHANGELOG.md"