Simulators of workload executions
Standalone programs that reproduce how a workload runs on a platform — runnable anywhere, in seconds, with fully deterministic output.
WRENCH is an open-source workbench for building accurate, scalable, and reproducible simulators of parallel and distributed computing systems. Prototype a runtime system, compare scheduling strategies, or run a thousand what-if scenarios overnight — on a single laptop, without touching a production platform.
// A complete simulator, in a handful of calls.
#include <wrench.h>
int main(int argc, char **argv) {
auto simulation = wrench::Simulation::createSimulation();
simulation->init(&argc, argv);
// 1. The hardware: hosts, disks, links, routes
simulation->instantiatePlatform("platform.xml");
// 2. The cyberinfrastructure services
auto storage = simulation->add(
wrench::SimpleStorageService::createSimpleStorageService(
"storage_host", {"/"}));
auto compute = simulation->add(
new wrench::BareMetalComputeService(
"compute_host", {"compute_host"}, ""));
// 3. Your runtime system / algorithm under test
simulation->add(new MyController(compute, storage, "user_host"));
// 4. Run it — seconds of wall clock, days of simulated time
simulation->launch();
}
<!-- Describe any platform you can imagine -->
<platform version="4.1">
<zone id="AS0" routing="Full">
<host id="compute_host" speed="100Gf" core="8">
<disk id="scratch" read_bw="1500MBps"
write_bw="800MBps">
<prop id="size" value="5000GiB"/>
<prop id="mount" value="/scratch"/>
</disk>
</host>
<host id="user_host" speed="10Gf" core="1"/>
<link id="wan" bandwidth="5000MBps" latency="20us"/>
<route src="user_host" dst="compute_host">
<link_ctn id="wan"/>
</route>
</zone>
</platform>
# Docker — everything preinstalled
docker pull wrenchproject/wrench:2.8
docker run -it wrenchproject/wrench:2.8
# …or build from source (needs SimGrid 4.1)
git clone https://github.com/wrench-project/wrench.git
cd wrench && mkdir build && cd build
cmake .. && make -j4
sudo make install
peer-reviewed papers and theses citing WRENCH
lines of tested, documented C++ in the core
pedagogic modules on eduWRENCH
contributors across four institutions
stable releases, 2017–2026
The framework
WRENCH sits on top of SimGrid's validated simulation kernel and adds the abstractions that actually matter to systems research — compute services, storage, data movement, and the runtime logic you want to study. You write the interesting part; WRENCH handles the rest.
Standalone programs that reproduce how a workload runs on a platform — runnable anywhere, in seconds, with fully deterministic output.
The SimGrid S4U kernel provides the analytically validated models for CPU, disk, and network contention that everything above stands on.
What you get
Simulation abstractions that would otherwise cost you a year of infrastructure code — already written, already validated, already documented.
Bare-metal, batch-scheduled clusters (with FCFS, conservative, and EASY backfilling), virtualized clusters, clouds, and serverless functions.
File systems modelled by SimGrid's FSMod, simple and XRootD storage, replica catalogs, caching, and explicit data movement.
Contention-aware links and routes, arbitrary topologies, and network proximity services for locality-aware scheduling research.
Per-host power profiles and pstate control, so energy-efficiency questions get first-class answers alongside makespan.
Services are building blocks. Mix a cloud, a batch queue, and three storage tiers in one scenario, and swap any of them out in a line of code.
Write simulators in C++ for speed, drive them from Python, or run WRENCH as a service behind its REST API.
Same inputs, same trace, same numbers — on your laptop, on a reviewer's laptop, three years from now.
Thousands of hosts and tasks simulate in seconds to minutes on one machine — parameter sweeps become practical.
Who it's for
Researchers
Test scheduling, data-management, and resource-provisioning strategies at scales and in configurations no testbed will give you.
Educators
eduWRENCH turns WRENCH into 22 browser-based pedagogic modules — from first-year concepts to graduate coursework.
Developers
Build a digital twin of a workflow engine or resource manager and see what a design change does — long before it reaches users.
Get started
WRENCH is free software under the LGPLv3. Pull a Docker image with the toolchain already built, or compile from source if you plan to contribute.
WRENCH version 2.8 adds a new feature so that controllers can raise events in and send messages to other controllers, which enables a broader range of simulation designs (at the cost of added complexity); and include minor software and documentation updates and fixes.
The fastest route — WRENCH, SimGrid, and the toolchain already built.
docker pull wrenchproject/wrench:2.8
docker run -it wrenchproject/wrench:2.8
Full control, and the way to go if you're contributing.
git clone https://github.com/wrench-project/wrench.git
cd wrench
mkdir build && cd build
cmake .. && make -j4
sudo make install
Plus the SimGrid File System Module (FSMod) 0.4.
g++ 7.5+ or clang 9.0+, driven by CMake 3.10 or higher.
Version 3.11.0 or higher.
Batsched for richer batch scheduling, Asio for the REST API daemon, Google Test and Doxygen for development.
The installation guide lists exact
versions, per-platform package names, and troubleshooting steps. Want the bleeding edge?
Clone master or pull wrenchproject/wrench:unstable.
Research
When you use WRENCH, please cite the paper below — and do read it, it is the most complete overview of the framework.
@article{wrench,
title = {Developing Accurate and Scalable Simulators of
Production Workflow Management Systems with WRENCH},
author = {Casanova, Henri and Ferreira da Silva, Rafael and
Tanaka, Ryan and Pandey, Suraj and Jethwani, Gautam and
Koch, William and Albrecht, Spencer and Oeth, James and
Suter, Fr\'{e}d\'{e}ric},
journal = {Future Generation Computer Systems},
volume = {112},
pages = {162--175},
year = {2020},
doi = {10.1016/j.future.2020.05.030}
}
H. Casanova, R. Ferreira da Silva, R. Tanaka, S. Pandey, G. Jethwani,
W. Koch, S. Albrecht, J. Oeth, and F. Suter, "Developing Accurate and
Scalable Simulators of Production Workflow Management Systems with
WRENCH", Future Generation Computer Systems, vol. 112, p. 162-175, 2020.
They use WRENCH
Since 2018, WRENCH has underpinned journal articles, conference and workshop papers, and doctoral theses across the workflows, HPC, and distributed computing communities — by our team and, increasingly, by groups we've never met.
By year and venue type, 2018–2026
papers & theses citing WRENCH
of them built a WRENCH-based simulator
came from groups outside the project
first published result, still growing every year
45 results
Nothing matches those filters.
Published something with WRENCH? Send the paper to support@wrench-project.org and we'll add it to the list.
Ecosystem
A small constellation of open projects that plug straight into your simulator.
The simulation kernel underneath: two decades of validated models for computation, communication, and I/O.
simgrid.orgReal workflow traces and generators for synthetic-but-realistic instances, consumable directly by WRENCH simulators.
wfcommons.org22 pedagogic modules and 17 interactive simulators that teach parallel and distributed computing in the browser.
eduwrench.orgAbout us
A collaboration spanning the University of Hawaiʻi at Mānoa, Oak Ridge National Laboratory, the University of Southern California, and the French National Center for Scientific Research.
Real experiments on real cyberinfrastructure are expensive, slow, and rarely repeatable. Simulation solves that — but only if the models are trustworthy and the tooling doesn't cost a year of engineering. WRENCH exists so a researcher can ask a hard question about a distributed system and get a defensible answer in days.
It is open source under the LGPLv3 license, developed in the open, and shaped by the community that uses it.
Built and maintained in the open since 2017 by researchers, educators, and students across UHM, ORNL, USC, and CNRS.
Professor of Computer Science at the University of Hawaiʻi at Mānoa, and member of the SimGrid team
Distinguished Research Scientist at the Oak Ridge National Laboratory
Senior Research Scientist at the Oak Ridge National Laboratory, and member of the SimGrid team
Research Scientist at the Lawrence Livermore National Laboratory
15 students and researchers who shaped WRENCH along the way.
Since its inception in 2017, WRENCH has received continued support from the U.S. National Science Foundation and the French National Center for Scientific Research.
Start simulating
Install WRENCH-2.8, work through WRENCH 101, and have a running simulator this afternoon. It's free, it's LGPLv3, and the team answers questions.
Questions? support@wrench-project.org · Bugs and feature requests go to the issue tracker.