wrench::SimulationOutput
-
class SimulationOutput
A class that contains post-mortem simulation-generated data.
Public Functions
-
void dumpDiskOperationsJSON(const std::string &file_path, bool writing_file = true)
Writes a JSON file containing disk operation information as a JSON array.
>>>>NOTE<<<< The timestamps the JSON is generated from are disabled by default. Enable them with SimulationOutput::enableDiskTimestamps() to use.
The JSON array has the following format:
- Parameters:
file_path – - path to save JSON at
writing_file – - boolean, default true, to write the JSON to the specified file path. Used for unified output.
-
void dumpHostEnergyConsumptionJSON(const std::string &file_path, bool writing_file = true)
Writes a JSON file containing host energy consumption information as a JSON array.
The JSON array has the following format:
- Parameters:
file_path – the path to write the file
writing_file – whether or not the file is written, true by default but will be false when utilized as part of dumpUnifiedJSON
-
void dumpLinkUsageJSON(const std::string &file_path, bool writing_file = true)
Writes a JSON file containing link usage information as a JSON array.
This information will not be generated without using the bandwidth meter service and providing it with link names to monitor.
- Parameters:
file_path – path where json file is written
writing_file – whether to write file to disk. Enabled by default.
-
void dumpPlatformGraphJSON(const std::string &file_path, bool writing_file = true)
Writes a JSON file containing all hosts, network links, and the routes between each host.
The JSON array has the following format:
- Parameters:
file_path – the path to write the file
writing_file – whether or not the file is written, true by default but will be false when utilized as part of dumpUnifiedJSON
Function that generates a unified JSON file containing the information specified by boolean arguments.
Any pieces not specified in the arguments are left out. For full structure see documentation of specific sections.
- Parameters:
workflow – a pointer to the Workflow
file_path – path for generated JSON
include_platform – boolean whether to include platform in JSON
include_workflow_exec – boolean whether to include workflow execution in JSON
include_workflow_graph – boolean whether to include workflow graph in JSON
include_energy – boolean whether to include energy consumption in JSON
generate_host_utilization_layout – boolean specifying whether or not you would like a possible host utilization layout to be generated
include_disk – boolean specifying whether to include disk operation in JSON (disk timestamps must be enabled)
include_bandwidth – boolean specifying whether to include link bandwidth measurements in JSON
Writes WorkflowTask execution history for each task to a file, formatted as a JSON array.
The JSON array has the following format:
If generate_host_utilization_layout is set to true, a recursive function searches for a possible host utilization layout where tasks are assumed to use contiguous numbers of cores on their execution hosts. Note that each ComputeService does not enforce this, and such a layout may not exist for some workflow executions. In this situation, the function will go through the entire search space until all possible layouts are evaluated. For a large Workflow, this may take a very long time.
If a host utilization layout is able to be generated, the ‘vertical_position’ values will be set for each task run, and the task can be plotted as a rectangle on a graph where the y-axis denotes the number of cores - 1, and the x-axis denotes the workflow execution timeline. The vertical_position specifies the bottom of the rectangle. num_cores_allocated specifies the height of the rectangle.
- Parameters:
workflow – a pointer to the Workflow
file_path – the path to write the file
generate_host_utilization_layout – boolean specifying whether or not you would like a possible host utilization layout to be generated
writing_file – whether or not the file is written, true by default but will be false when utilized as part of dumpUnifiedJSON
Writes a JSON graph representation of the Workflow to a file, in the WfFormat format which is defined at: https://wfcommons.org/format.
Note that in the output JSON, the machines::cpu::speed is give as a GHz clock rate while in WRENCH core speeds are in Flop/sec. The GHz clock rate is computed by dividing the flop rate by 10^9 (so it’s not really a clock rate).
- Parameters:
workflow – a pointer to the workflow
file_path – the path to write the file
writing_file – whether or not the file is written, true by default but will be false when utilized as part of dumpUnifiedJSON
-
void enableBandwidthTimestamps(bool enabled)
Enable or Disable the insertion of link-usage-related timestamps in the simulation output (enabled by default)
- Parameters:
enabled – true to enable, false to disable
-
void enableDiskTimestamps(bool enabled)
Enable or Disable the insertion of disk-related timestamps in the simulation output (enabled by default)
- Parameters:
enabled – true to enable, false to disable
-
void enableEnergyTimestamps(bool enabled)
Enable or Disable the insertion of energy-related timestamps in the simulation output (enabled by default)
- Parameters:
enabled – true to enable, false to disable
-
void enableFileReadWriteCopyTimestamps(bool enabled)
Enable or Disable the insertion of file-related timestamps in the simulation output (enabled by default)
- Parameters:
enabled – true to enable, false to disable
-
void enableWorkflowTaskTimestamps(bool enabled)
Enable or Disable the insertion of task-related timestamps in the simulation output (enabled by default)
- Parameters:
enabled – true to enable, false to disable
-
template<class T>
inline std::vector<SimulationTimestamp<T>*> getTrace() Retrieve a copy of a simulation output trace once the simulation has completed.
- Template Parameters:
a – particular SimulationTimestampXXXX class (defined in SimulationTimestampTypes.h)
- Returns:
a vector of pointers to SimulationTimestampXXXX instances
-
void dumpDiskOperationsJSON(const std::string &file_path, bool writing_file = true)