Overview {#mainpage}


User Documentation
@endWRENCHDoc @WRENCHDeveloperDoc
Developer Documentation
@endWRENCHDoc @WRENCHInternalDoc
Internal Documentation

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. WRENCH builds on top of the open-source SimGrid simulation framework. SimGrid enables the simulation 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). WRENCH provides directly usable high-level simulation abstractions using SimGrid as a foundation.

In a nutshell, WRENCH makes it possible to:

Architecture # {#overview-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:

Three Classes of Users # {#overview-users}

WRENCH is intended for three different classes of users:

Three Levels of API Documentation ## {#overview-users-levels}

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. These simulators can be as simple as a single 50-line main() function. @WRENCHNotUserDoc (See User Documentation) @endWRENCHDoc

Developer: targets WMS developers and WMS researchers who work on developing novel WMS designs and algorithms. In addition to documentation for all simulation components provided at the User level, Developer documentation include detailed documentation for interacting with simulated Core Services. @WRENCHNotDeveloperDoc (See Developer Documentation) @endWRENCHDoc

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

Get in Touch # {#overview-contact}

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.