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
Release files for copy-space 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| copy_space-0.1.3.tar.gz | 21.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| copy_space-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.0 kB
Release files / copy_space-0.1.3.tar.gz
| Download URL | copy_space-0.1.3.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e5b13d4a55308369eea778a8231fa34320470842359a2ed0176829a0c70e781
|
|
BLAKE2b-256 checksum How to use checksums |
9b53fa4f96a3f441e6580fdd84998fd038530a0d4ad5458ef293ccd85fc2f4ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.4
|
Release files / copy_space-0.1.3-py3-none-any.whl
| Download URL | copy_space-0.1.3-py3-none-any.whl |
|---|---|
| Size | 27.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f37e00ca201b74bc1bfb0793219e7ad426d6eace4336791472e816140e3e351
|
|
BLAKE2b-256 checksum How to use checksums |
b176d208de118f0ce097688a2260b195bbe5c9d4e0045b53717767a47e65630a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.4
|