Guide {#guide}
This page provides pointers to high-level information for WRENCH users who
want to build simulators. The examples provided in the example/
directory are a great first start. This page goes further by detailing what
possibilities are available to users beyond what is shown in the examples.
Simulated Platform Hardware Configurations
A WRENCH simulator must specify the hardware configuration of the platform
to be simulator (i.e., compute resources, storage resources, network
resources). WRENCH does not do anything specific and accepts any valid
SimGrid platform description in
XML. The documentation is
extensive, as many options are possible. We strongly suggest users to
inspect the platform files provided with the WRENCH examples (in
directory examples/simple-example/platform_files/
). These files are
simply passed to the wrench::Simulation::instantiatePlatform()
method.
Simulated CyberInfrastructure Services
A WRENCH simulation consists in a WMS (Workflow Management System) that interacts with CyberInfrastructure Service. Several such (simulated) services are implemented in WRENCH and can thus be instantiated on the simulation platform out-of-the-box. The examples in the examples
directory showcase the use of some of these services, but there are others! WRENCH currently provide the following CyberInfrastructure services:
-
Compute Services
-
Storage Services
-
File Registry Services
-
Network Proximity Services
Simulation Output
The goal of any simulator is to generate output that describes a simulated
execution, the outcomes of which can be analyzed for whatever purposes. The
class wrench::SimulationOutput
contains all relevant information
(once the simulation has completed). This information can be accessed via
this class' API (see the relevant documentation in the API Reference
section). Note that there are also methods to configure the type and amount of
output generated (see the
wrench::SimulationOutput::enable*Timestamps()
methods).
The simulation output can be exported to a JSON file, using one of the
wrench::SimulationOutput::dump*JSON()
methods. See the documentation of each method to see the structure of the JSON output, in case you want to parse/process the JSON yourself. Alternately, you can use the
WRENCH dashboard to open the JSON and gain access to interactive visualization/inspection tools. To do so simple run tools/wrench/wrench-dashboard
.