Copy-Space: validated scheduling toolkit (STRICT1, volume-based)
Project description
Copy-Space — validated scheduling toolkit for deterministic data movement
Copy-Space produces conflict-free schedules for directed data transfer demands under a deterministic resource model (STRICT1). It also provides an independent validator report with reproducible metrics.
What you get:
- Correctness: schedule validation under STRICT1 (coverage + bandwidth + model constraints)
- A lower bound on required ticks (lower_bound_ticks) and a normalized gap metric (gap_to_lower_bound)
- Reproducible metrics suitable for CI gating and regression tracking
Try it in 60 seconds (hero example)
Hero workload: odd ring (15 demands, non-trivial gap to lower bound):
python3 -m venv .venv . .venv/bin/activate python -m pip install -e . copyspace-pilot --csv examples/ring15.csv --bw 256 --outdir tmp/pilot_ring15 --plot
Example output (expected shape):
baseline status=PASS ticks=12288 lb=8192 gap=4096 gapr=0.500000 util=0.7143 greedy status=PASS ticks=8778 lb=8192 gap=586 gapr=0.071533 util=0.9999
What to open after the run:
- tmp/pilot_ring15/report_baseline.json
- tmp/pilot_ring15/report_greedy.json
- tmp/pilot_ring15/plot_baseline.html
- tmp/pilot_ring15/plot_greedy.html
Bench history (smoke time series):
CLI entrypoints (Scheduler v0)
copyspace-validate --help copyspace-solve --help copyspace-pilot --help copyspace-demo-scheduler --help copyspace-bench-core --help copyspace-bench-scheduler --help
Partner-facing docs:
- doc/partners/quickstart_pilot.md
- doc/partners/pilot_intake.md
- doc/partners/ci_gate_recipe.md
Technical contracts (source of truth):
- doc/scheduler_io_v0.md
- doc/strict1_model_v0.md
What is inside (high-level)
Scheduler v0 (pilot-facing, recommended):
- validator + metrics (copyspace-validate)
- solver strategies (copyspace-solve: baseline, greedy, external)
- pilot runner (copyspace-pilot)
Under the hood (VM and toolchain):
- minimal bit-addressable VM (space, ticks, copy slots)
- std7_fixed image builder (mkimage_std7_fixed)
- host-side Forth0 compiler (forth0c) and Forth0-first regression tests
Optional: VM demo (DB / analytics focus)
Build native tools:
make bins
Run demo (produces CSV):
scripts/demo_db.sh > /dev/null 2> tmp/demo.stderr cat tmp/demo.csv
Key metric in CSV:
vmrep_avg_bits_uniq_dst_per_tick
Meaning:
- effective unique destination bits written per tick (useful write throughput)
Tests
Run all regression tests:
make test make tdd
Scheduler v0 fixtures and smokes:
- scripts/test_scheduler.sh
- scripts/scheduler/tests
Documentation
Start here:
- doc/README.md
Status and roadmap:
- doc/status.md
- doc/roadmap.md
License
Apache-2.0 — see LICENSE Third-party notes — see THIRD_PARTY.md
Contact
Dmitri Bortoq Email: bortoq@gmail.com Telegram: @the_arctium GitHub repo: https://github.com/bortoq/copy-space
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file copy_space-0.1.3.tar.gz.
File metadata
- Download URL: copy_space-0.1.3.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e5b13d4a55308369eea778a8231fa34320470842359a2ed0176829a0c70e781
|
|
| MD5 |
52df828b3a8c7b8e1d8b75732229b220
|
|
| BLAKE2b-256 |
9b53fa4f96a3f441e6580fdd84998fd038530a0d4ad5458ef293ccd85fc2f4ea
|
File details
Details for the file copy_space-0.1.3-py3-none-any.whl.
File metadata
- Download URL: copy_space-0.1.3-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f37e00ca201b74bc1bfb0793219e7ad426d6eace4336791472e816140e3e351
|
|
| MD5 |
4d16bdcb602dc9dc9ff05974d0f0d06f
|
|
| BLAKE2b-256 |
b176d208de118f0ce097688a2260b195bbe5c9d4e0045b53717767a47e65630a
|