Skip to content

Commit f397ebc

Browse files
authored
Merge pull request #32 from JGCRI/develop
Version 2.0.0-beta.6
2 parents 797657e + 54a0c55 commit f397ebc

64 files changed

Lines changed: 3629 additions & 2187 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ notebooks/.ipynb_checkpoints/
99
notebooks/beginner/.ipynb_checkpoints/
1010
notebooks/intermediate/.ipynb_checkpoints/
1111
notebooks/advanced/.ipynb_checkpoints/
12+
.scalable/
1213

1314
# -----------------------------
1415
# Python bytecode / caches
@@ -110,4 +111,7 @@ communicator/src/communicator
110111
# -----------------------------
111112
# Existing repo-specific generated files
112113
# -----------------------------
113-
scalable/custom_types.py
114+
scalable/custom_types.py
115+
# Demeter tutorial artifacts (see docs/tutorials/demeter_setup.rst)
116+
/demeter_data/
117+
/outputs/

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3333
- **Documentation recommends beginner path**: `README.md`, `docs/getting_started.rst`,
3434
and `docs/tutorials/index.rst` now recommend starting with beginner tutorials for
3535
users unfamiliar with distributed computing concepts.
36+
- **New optional dependency extra**: added `[project.optional-dependencies] all`
37+
to install test, dev, ai, cloud, kubernetes, and ml dependency groups in one
38+
command (`pip install scalable[all]`).
39+
40+
### Changed
41+
42+
- Bumped package version to `2.0.0b2`.
43+
- Updated installation examples in `README.md` and `docs/getting_started.rst`
44+
to use `pip install scalable[all]` for all optional dependencies.
3645

3746
---
3847

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cff-version: 1.2.0
22
message: "If you use this software, please cite it as below."
33
type: software
44
title: "Scalable"
5-
version: "2.0.0-beta.1"
5+
version: "2.0.0-beta.6"
66
doi: "10.5281/zenodo.20295640"
77
url: "https://github.com/JGCRI/scalable"
88
repository-code: "https://github.com/JGCRI/scalable"

README.md

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ Scalable is a Python framework for orchestrating containerized, distributed work
2424
- [Telemetry and Reports](#telemetry-and-reports)
2525
- [Resource Advising](#resource-advising)
2626
- [ML Optimization](#ml-optimization)
27-
- [Model Emulation](#model-emulation)
2827
- [AI Assistants](#ai-assistants)
2928
- [Cloud and Kubernetes](#cloud-and-kubernetes)
3029
- [Artifact Storage](#artifact-storage)
@@ -120,11 +119,11 @@ pip install scalable[cloud]
120119
# Kubernetes provider (Dask Kubernetes Operator)
121120
pip install scalable[kubernetes]
122121

123-
# ML optimization and emulation (LearnedAdvisor, AdaptiveScaler, emulators)
122+
# ML optimization (LearnedAdvisor, AdaptiveScaler)
124123
pip install scalable[ml]
125124

126125
# All optional dependencies
127-
pip install scalable[ai,cloud,kubernetes,ml]
126+
pip install scalable[all]
128127
```
129128

130129
If your shell cannot find installed scripts (for example, `scalable_bootstrap`), add the relevant scripts directory to `PATH`.
@@ -372,34 +371,6 @@ CLI access:
372371
scalable advise --task run_gcam --model-type gradient_boosting --format json
373372
```
374373
375-
### Model Emulation
376-
377-
The emulation subsystem (`scalable[ml]`) provides uncertainty-aware surrogate
378-
model dispatch for expensive scientific functions:
379-
380-
```python
381-
from scalable import emulatable, EmulatorRegistry, EmulatorDispatch
382-
383-
@emulatable(
384-
inputs=["temperature", "precipitation"],
385-
outputs=["yield"],
386-
domain_bounds={"temperature": (250, 350), "precipitation": (0, 5000)},
387-
confidence_threshold=0.9,
388-
)
389-
def run_crop_model(temperature, precipitation):
390-
# Expensive model execution
391-
...
392-
393-
# Register and manage trained emulators
394-
registry = EmulatorRegistry(".scalable/emulators")
395-
dispatch = EmulatorDispatch(registry, confidence_threshold=0.9)
396-
397-
# Confidence-gated routing: uses emulator when confident, falls back to full model
398-
result = dispatch.predict("run_crop_model", inputs={"temperature": 300, "precipitation": 1200})
399-
print(result.source) # "emulator" or "full_model"
400-
print(result.confidence)
401-
```
402-
403374
### AI Assistants
404375
405376
AI assistants help with onboarding, diagnostics, workflow generation, and
@@ -630,9 +601,6 @@ Override `AI_API_KEY` for individual providers when using multiple services:
630601
| `SCALABLE_DEFAULT_STORAGE` | *(unset)* | Default artifact storage URI |
631602
| `SCALABLE_ML` | `1` | Enable ML features |
632603
| `SCALABLE_ML_CACHE_DIR` | `.scalable/models` | ML model cache directory |
633-
| `SCALABLE_EMULATION` | `0` | Enable model emulation |
634-
| `SCALABLE_EMULATOR_DIR` | `.scalable/emulators` | Emulator registry directory |
635-
| `SCALABLE_EMULATION_CONFIDENCE` | `0.9` | Emulation confidence threshold |
636604
637605
### Advanced AI Overrides
638606

docs/advising.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Quick start
1414
1515
advisor = ResourceAdvisor.from_history("./.scalable/runs")
1616
recommendation = advisor.recommend(
17-
task="run_gcam",
17+
task="run_demeter_scenario",
1818
target="local",
1919
confidence=0.95,
2020
)
@@ -42,7 +42,7 @@ CLI access
4242

4343
.. code-block:: bash
4444
45-
scalable advise --task run_gcam --target local --confidence 0.95
45+
scalable advise --task run_demeter_scenario --target local --confidence 0.95
4646
4747
The CLI ``advise`` command first attempts ML-backed recommendations (if
4848
``scalable[ml]`` is installed) and falls back to the heuristic advisor when

docs/ai_assistants.rst

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
AI Assistants
22
=============
33

4-
Scalable v2.0.0 includes AI-assisted features (Phase 4) that help users
5-
onboard models, compose workflows, diagnose failures, explain plans, and
6-
migrate manifests.
4+
Scalable v2.0.0 includes AI-assisted features that help users onboard
5+
models, compose workflows, diagnose failures, explain plans, and migrate
6+
manifests.
77

88
All features work **without** an LLM backend via deterministic heuristic
99
fallbacks. LLM enhancement is opt-in via the ``SCALABLE_AI_BACKEND``
@@ -162,17 +162,15 @@ scalable compose
162162

163163
Generate a workflow from a natural-language description::
164164

165-
scalable compose "Run GCAM reference scenario then Stitches for daily weather"
166-
scalable compose "Run Hector model" --output-dir ./generated
165+
scalable compose "Run the GCAM reference scenario and downscale land allocation using Demeter" --output-dir ./generated
166+
scalable compose "Run the GCAM reference scenario" --output-dir ./generated
167167

168168
Options:
169169

170170
* ``--output-dir`` — Directory for generated files
171171
* ``--format`` — Output format (``text`` or ``json``)
172172
* ``--no-ai`` — Use heuristics only
173173

174-
Known model patterns: GCAM, Stitches, Demeter, Tethys, Xanthos, Hector.
175-
176174
scalable migrate
177175
~~~~~~~~~~~~~~~~
178176

@@ -264,5 +262,4 @@ See Also
264262

265263
- :doc:`manifest` — Manifest schema and session API
266264
- :doc:`ml` — ML-backed resource optimization
267-
- :doc:`emulation` — Model emulation with surrogate dispatch
268265
- :doc:`telemetry` — Run telemetry that powers diagnosis

docs/artifacts.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Artifact Store
22
==============
33

4-
The :mod:`scalable.artifacts` module (Phase 3) provides a protocol-based
5-
abstraction for storing and retrieving workflow artifacts across local and
6-
remote backends.
4+
The :mod:`scalable.artifacts` module provides a protocol-based abstraction
5+
for storing and retrieving workflow artifacts across local and remote
6+
backends.
77

88
Overview
99
--------

docs/cloud.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ GCP Provider (Scaffold)
4545
-----------------------
4646

4747
The :class:`~scalable.providers.cloud.gcp.GCPProvider` is a validation-only
48-
scaffold in Phase 3. It validates manifest options but raises
49-
``NotImplementedError`` on ``build_cluster()``.
48+
scaffold. It validates manifest options but raises ``NotImplementedError``
49+
on ``build_cluster()``.
5050

5151
Target options:
5252

docs/emulation.rst

Lines changed: 0 additions & 183 deletions
This file was deleted.

0 commit comments

Comments
 (0)