Skip to content
This repository was archived by the owner on Aug 29, 2026. It is now read-only.

Repository files navigation

AkôFlow Scheduler

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.

Structure

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.

Generate a Montage 58 bundle

go run ./cmd/akoflow-scheduler \
  -output build/montage-58 \
  -scenario hybrid_hetero \
  -beam-width 120

The bundle includes the environment, network topology, workflow, HEFT, PRISM-Time, and PRISM-Cost plans, execution requests, and predicted metrics.

Generate the complete AkôFlow catalog

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.20

The 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.

Generate large profiled CyberShake workflows

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-api

Each 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.

Import into AkôFlow

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-api

Test

go test ./...
cd frontend && npm test && npm run build

Visualize a bundle

cd frontend
npm install
npm run dev

Open 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.

Data location

The CLI searches data/ automatically. Packaged installations can override it:

export AKOFLOW_SCHEDULER_DATA_DIR=/opt/akoflow/scheduler-data

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages