Schedule big workloads
optimally, in time & energy.
Partition an arbitrarily splittable workload across distributed processors and get the fastest schedule (and, when you care, the most energy-efficient one) from a research-grade C++ solver library.
Divisible load scheduling (DLS) plans how a large, arbitrarily splittable workload (big-data batches, parallel scans, rendering, simulations) is partitioned and streamed to a set of worker machines so it finishes as fast as possible, and optionally using as little energy as possible. This portal puts a research-grade C++ solver library behind a friendly interface: describe your machines, pick a method, and see the schedule, the trade-offs, and how methods compare.
Capabilities
What you can do
Run any solver and get the makespan, energy and a Gantt chart of communication vs computation per processor.
Explore the trade-off front, how much energy you save by allowing a little more time.
Sweep two system parameters and see contours of constant time (isoefficiency) or energy (isoenergy).
Run several solvers on the same random instances and compare quality against run time.
Headless
Use the engine
Same engine, three ways: the GUI, the command line, or the HTTP API. The C++ library is self-contained and usable on its own.
# command line, JSON in, JSON out $ dls solve --solver=auto --json instance.txt # or the HTTP API, the same engine this portal uses $ curl -s localhost:8501/api/solve \ -H 'Content-Type: application/json' \ -d '{"instance": {"totalLoad": 1000, "processors": [...]}, "solver": "best-rate"}'