Overview
Developer Documentation
logo-vertical.png
Workflow Management System Simulation Workbench



WRENCH enables novel avenues for scientific workflow use, research, development, and education. WRENCH capitalizes on recent and critical advances in the state of the art of distributed platform/application simulation by building on top of the open-source SimGrid simulation framework. SimGrid makes it to simulate the execution of large-scale distributed applications in a way that is accurate (via validated simulation models), scalable (low ratio of simulation time to simulated time, ability to run large simulations on a single computer with low compute, memory, and energy footprints), and expressive (ability to simulate arbitrary platform, application, and execution scenarios).

In a nutshell, WRENCH makes it possible to:

  • Prototype implementations of Workflow Management System (WMS) components and underlying algorithms;
  • Quickly simulate arbitrary workflow and platform scenarios for a simulated WMS implementation; and
  • Run extensive experimental campaigns to conclusively compare workflow executions, platform architectures, and WMS algorithms and designs.


Architecture

WRENCH is an open-source library for developing simulators. It is neither a graphical interface nor a stand-alone simulator. WRENCH exposes several high-level simulation abstractions to provide high-level building blocks for developing custom simulators.

WRENCH comprises four distinct layers:

  • Simulation Core: All necessary simulation models and base abstractions (computing, communicating, storing), provided by SimGrid.
  • Simulated Core Services: abstractions for simulated cyberinfrastructure components that can be used by a WMS to execute workflows (compute services, storage services, network proximity services, data location services, etc.).
  • Simulated WMS: simulated WMS implementations (e.g., simulated existing production WMSs, simulated WMS research prototypes).
  • Top-Level Simulation: a top-level set of abstractions to instantiate and simulate the execution of arbitrary workflows on arbitrary platforms using a particular WMS implementation.
wrench-architecture.png

Classes of Users

WRENCH is intended for two different classes of users:

  • WMS Users: who use WRENCH to simulate workflow executions using existing software insfrastructures.
  • WMS Developers/Researchers: who use WRENCH to prototype and evaluate alternate software WMS designs and/or to investigate and evaluate novel algorithms to be implemented in WMSs.

Three Levels of API Documentation

The WRENCH library provides three incremental levels of documentation, each targeting an API level:

User: targets users who want to use WRENCH for simulating the execution of scientific workflows in different simulation scenarios, using existing simulated WMSs already implemented using WRENCH. Users are NOT expected to develop new simulation abstractions or algorithms. Instead, they only use available simulation components as high-level building blocks to quickly build simulators. (See User Documentation)

Developer: targets WMS developers and WMS researchers that works on developing novel WMS designs and algorithms. In addition to documentation for all simulation components provided at the User level, documentation include detailed documentation for interacting with simulated Core Services, as well as for obtaining information about the hardware platform.

Internal: targets those users who want to contribute code to WRENCH. The internal level provides, in addition to both levels above, a detailed documentation for all WRENCH classes including binders to SimGrid. This is the API needed to, for instance, implement new Core Services. (See Internal Documentation)

Get in Touch

The main channel to reach the WRENCH team is via the support email: support@wrench-project.org.

Bug Report / Feature Request: our preferred channel to report a bug or request a feature is via WRENCH's Github Issues Track.