Go CLI that produces frozen scheduling plans for AkôFlow. It reads a scientific workflow and an environment model, runs HEFT, PRISM-Time, and PRISM-Cost, and exports API-ready AkôFlow documents.
cmd/akoflow-scheduler/ CLI entrypoint
internal/scheduler/ workflow loading, HEFT, PRISM, and AkôFlow exporter
data/ versioned workflow and environment input datasets
examples/montage-58/ generated, executable AkôFlow bundle
frontend/ local AkôFlow schedule-plan viewer
The scheduling and export pipeline is entirely Go. The small React frontend is kept only to load and visualize the resulting AkôFlow bundles; experiment archives, notebooks and report-generation tooling are not part of the project.
go run ./cmd/akoflow-scheduler \
-output build/montage-58 \
-scenario hybrid_hetero \
-beam-width 120The bundle includes the environment, network topology, workflow, HEFT, PRISM-Time, and PRISM-Cost plans, execution requests, and predicted metrics.
The validation catalog contains 7 workflows and 7 representative environments.
It produces 49 bundles and 147 plans without artificial 10x or 100x data
variants. Every combination uses a deadline equal to 80% of its HEFT makespan:
go run ./cmd/akoflow-scheduler \
-all \
-output build/akoflow-catalog \
-workers 6 \
-beam-width 120 \
-deadline-multiplier 0.80 \
-budget-multiplier 1.20The command is resumable by default. Every bundle is written under
<workflow>/<environment>/, and catalog.json records the complete matrix.
Use -list to enumerate the catalog without running a scheduler, or select one
combination with -workflow and -scenario.
Workflows: Montage 58, Montage 6,448, 1000Genome, Cycles, Epigenomics, Seismic Cross Correlation, and SRA Search.
Environments: homogeneous and heterogeneous cluster, cloud and hybrid, plus the heterogeneous fog/HPC/cloud network scenario.
The large-scale generator creates deterministic synthetic CyberShake workflows calibrated against the published 815,823-job TACC Ranger profile. It writes the complete logical HEFT plan as compressed JSONL and an AkôFlow bundle that can be executed by SimGrid without expanding millions of database rows:
go run ./cmd/cybershake-scale \
-output build/cybershake-scale \
-sizes 10000,100000,250000,815823,840000 \
-push \
-execute \
-api-url http://localhost:8080/akoflow-apiEach heft-assignments.jsonl.gz contains one assignment for every logical
activity. The AkôFlow execution uses one aggregate activity per Ranger CPU lane
(36 nodes × 16 cores) and records the logical activity count and detailed-plan
artifact in plan metadata. This aggregate-plan-replay representation keeps
the database and SimGrid execution bounded while preserving the HEFT makespan.
The generated workflow is explicitly labeled synthetic-profiled; it is not
the unreleased original production DAG.
Generation and publication are performed by the same Go binary:
go run ./cmd/akoflow-scheduler \
-output build/montage-58 \
-scenario hybrid_hetero \
-beam-width 120 \
-push \
-api-url http://localhost:8080/akoflow-apigo test ./...
cd frontend && npm test && npm run buildcd frontend
npm install
npm run devOpen http://localhost:5173 and select a generated bundle directory, such as
examples/montage-58. The viewer reads manifest.json, the AkôFlow workflow,
environment and plan requests, then displays HEFT, PRISM-Time and PRISM-Cost as
a DAG, Gantt chart, assignment table and resource table.
The CLI searches data/ automatically. Packaged installations can override it:
export AKOFLOW_SCHEDULER_DATA_DIR=/opt/akoflow/scheduler-data