Divisible Load Theory engine

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 Theory (DLT) models 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.

Divisible loads arise in parallel image processing, video frame encoding, genomic batch analysis, Monte-Carlo simulations, distributed database scans and sensor data fusion — any application where a large dataset can be partitioned and processed independently per element. The scheduler computes load fractions and service order analytically; for the classic single-load model it also returns a provable optimality gap — a certified upper bound on how far the result is from the theoretically fastest possible schedule.

Fast heuristicsProven-optimalHiGHS MILPEnergy-awareTime-energy ParetoChain / tree / graph
algorithms, from instant heuristics to exact search
5
problem classes: star, topology, MLSD, MapReduce, multilayer
9
ML surrogates trained on millions of exact-labelled schedules
time + energy
objectives
proven optimal
exact solvers certify the true optimum, not an estimate

Capabilities

What you can do

Solve & visualize

Run any solver and get the makespan, energy and a Gantt chart of communication vs computation per processor.

Time-energy Pareto

Explore the trade-off front, how much energy you save by allowing a little more time.

Iso-maps

Sweep two system parameters and see contours of constant time (isoefficiency) or energy (isoenergy).

Portfolio compare

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"}'
Open Solver Studio to get started, or read the Knowledge base for the model and methods.