Classes | |
class | AmdahlParallelModel |
A class that defines an Amdahl's Law-based parallel task performance model. More... | |
class | BandwidthMeterService |
A service that measures and records bandwidth usage on a set of links at regular time intervals. More... | |
class | BareMetalComputeService |
A compute service that manages a set of multi-core compute hosts and provides access to their resources. More... | |
class | BareMetalComputeServiceMessagePayload |
Configurable message payloads for a MultiHostMulticoreComputeService. More... | |
class | BareMetalComputeServiceProperty |
Configurable properties for a bare_metal. More... | |
class | BatchComputeService |
A batch-scheduled compute service that manages a set of compute hosts and controls access to their resource via a batch queue. More... | |
class | BatchComputeServiceMessagePayload |
Configurable message payloads for a batch. More... | |
class | BatchComputeServiceProperty |
Configurable properties for a BatchComputeService. More... | |
class | CloudComputeService |
A cloud-based compute service that manages a set of physical hosts and controls access to their resources by (transparently) executing jobs in VM instances. More... | |
class | CloudComputeServiceMessagePayload |
Configurable message payloads for a CloudService. More... | |
class | CloudComputeServiceProperty |
Configurable properties for a CloudComputeService. More... | |
class | ComputeService |
The compute service base class. More... | |
class | ComputeServiceMessagePayload |
Configurable message payloads for a ComputeService. More... | |
class | ComputeServiceProperty |
Configurable properties for a ComputeService. More... | |
class | ComputeThreadHasDied |
A "compute thread has died" failure cause. More... | |
class | ConstantEfficiencyParallelModel |
A class the implemens a constant-efficiency parallel task performance model. More... | |
class | CustomParallelModel |
A class that defines a custom parallel task performance model. More... | |
class | DataMovementManager |
A helper daemon (co-located with a WMS) that handles data movement operations. More... | |
class | DynamicOptimization |
An abstract class that serves as a base class for implementing dynamic (i.e., at runtime) optimizations to be used by a WMS while executing a Workflow. More... | |
class | EnergyMeterService |
A service that measures and records energy consumption on a set of hosts at regular time intervals. More... | |
class | FailureCause |
A top-level class to describe all simulation-valid failures that can occur during workflow execution (and should/could be handled by a WMS) More... | |
class | FatalFailure |
An "Unknown" failure cause (should not happen) More... | |
class | FileAlreadyBeingCopied |
A "file is already being copied" failure cause. More... | |
class | FileCopyCompletedEvent |
A "file copy has completed" WorkflowExecutionEvent. More... | |
class | FileCopyFailedEvent |
A "file copy has failed" WorkflowExecutionEvent. More... | |
class | FileLocation |
A class that encodes a file location. More... | |
class | FileNotFound |
A "file was not found" failure cause. More... | |
class | FileRegistryService |
A file registry service (a.k.a. replica catalog) that holds a database of which files are available at which storage services. Specifically, the database holds a set of <file, storage service> entries. A WMS can add, lookup, and remove entries at will from this database. More... | |
class | FileRegistryServiceMessagePayload |
Configurable message payload for a FileRegistryService. More... | |
class | FileRegistryServiceProperty |
Configurable properties for a FileRegistryService. More... | |
class | FunctionalityNotAvailable |
A "requested functionality is not available on that service" failure cause. More... | |
class | HostError |
A "host error" failure cause (e.g., attempted to start a daemon on a host that is off) More... | |
class | HTCondorComputeService |
A workload management framework compute service. More... | |
class | HTCondorComputeServiceMessagePayload |
Configurable message payloads for an htcondor. More... | |
class | HTCondorComputeServiceProperty |
Properties for an HTCondor service. More... | |
class | InvalidDirectoryPath |
A "unknown mount point storage service" failure cause. More... | |
class | JobKilled |
A "job has been killed" failure cause. More... | |
class | JobManager |
A helper daemon (co-located with and explicitly started by a WMS), which is used to handle all job executions. More... | |
class | JobTimeout |
A "job has timed out" failure cause. More... | |
class | JobTypeNotSupported |
A "compute service does not support requested job type" failure cause. More... | |
class | NetworkError |
A "network error (or endpoint is down)" failure cause. More... | |
class | NetworkProximityService |
A network proximity service that continuously estimates inter-host latencies and can be queried for such estimates. More... | |
class | NetworkProximityServiceMessagePayload |
Configurable message payloads for a NetworkProximityService. More... | |
class | NetworkProximityServiceProperty |
Configurable properties for a NetworkProximityService. More... | |
class | NoScratchSpace |
A "no scratch space" failure cause. More... | |
class | NotAllowed |
A "operation not allowed" failure cause. More... | |
class | NotEnoughResources |
A "compute service doesn't have enough cores" failure cause. More... | |
class | ParallelModel |
A virtual class (with convenient static methods) to define parallel task performance models. More... | |
class | PegasusWorkflowParser |
A class that implement methods to read workflow files provided by the Pegasus project. More... | |
class | PilotJob |
A pilot (i.e., non-standard) workflow job that can be submitted to a ComputeService by a WMS (via a JobManager) More... | |
class | PilotJobExpiredEvent |
A "pilot job has expired" WorkflowExecutionEvent. More... | |
class | PilotJobScheduler |
A (mostly virtual) base class for implementing PilotJob scheduling algorithms to be used by a WMS. More... | |
class | PilotJobStartedEvent |
A "pilot job has started" WorkflowExecutionEvent. More... | |
class | Service |
A service that can be added to the simulation and that can be used by a WMS when executing a workflow. More... | |
class | ServiceIsDown |
A "service is down" failure cause. More... | |
class | ServiceIsSuspended |
A "service is suspended" failure cause. More... | |
class | ServiceMessagePayload |
Configurable message payloads for a Service. More... | |
class | ServiceProperty |
Configurable properties for a Service. More... | |
class | SimpleStorageService |
A storage service that provides direct access to some storage resources (e.g., one or more disks). An important (configurable) property of the storage service is SimpleStorageServiceProperty::BUFFER_SIZE (see documentation thereof), which defines the buffer size that the storage service uses. Specifically, when the storage service receives/sends data from/to the network, it does so in a loop over data "chunks", with pipelined network and disk I/O operations. The smaller the buffer size the more "fluid" the model, but the more time-consuming the simulation. A large buffer size, however, may lead to less realistic simulations. At the extreme, an infinite buffer size would correspond to fully sequential executions (first a network receive/send, and then a disk write/read). Setting the buffer size to "0" corresponds to a fully fluid model in which individual data chunk operations are not simulated, thus achieving both accuracy (unless one specifically wishes to study the effects of buffering) and quick simulation times. For now, setting the buffer size to "0" is not implemented. The default buffer size is 10 MiB (note that the user can always declare a disk with arbitrary bandwidth in the platform description XML). More... | |
class | SimpleStorageServiceMessagePayload |
Configurable message payloads for a SimpleStorageService. More... | |
class | SimpleStorageServiceProperty |
Configurable properties for a SimpleStorageService. More... | |
class | Simulation |
A class that provides basic simulation methods. Once the simulation object has been explicitly or implicitly destroyed, then any call to the WRENCH APIs has undefied behavior (due to memory_manager_service being de-allocated). More... | |
class | SimulationOutput |
A class that contains post-mortem simulation-generated data. More... | |
class | SimulationTimestamp |
A time-stamped simulation event stored in SimulationOutput. More... | |
class | SimulationTimestampDiskRead |
A base class for simulation timestamps regarding disk reads. More... | |
class | SimulationTimestampDiskReadCompletion |
A simulation timestamp class for disk read completions. More... | |
class | SimulationTimestampDiskReadFailure |
A simulation timestamp class for disk read failure times. More... | |
class | SimulationTimestampDiskReadStart |
A simulation timestamp class for disk read start times. More... | |
class | SimulationTimestampDiskWrite |
A base class for simulation timestamps regarding disk writes. More... | |
class | SimulationTimestampDiskWriteCompletion |
A simulation timestamp class for disk write completions. More... | |
class | SimulationTimestampDiskWriteFailure |
A simulation timestamp class for disk write failure times. More... | |
class | SimulationTimestampDiskWriteStart |
A simulation timestamp class for disk write start times. More... | |
class | SimulationTimestampEnergyConsumption |
A simulation timestamp class for energy consumption. More... | |
class | SimulationTimestampFileCopy |
A base class for simulation timestamps regarding file copies. More... | |
class | SimulationTimestampFileCopyCompletion |
A simulation timestamp class for file copy completions. More... | |
class | SimulationTimestampFileCopyFailure |
A simulation timestamp class for file copy failure times. More... | |
class | SimulationTimestampFileCopyStart |
A simulation timestamp class for file copy start times. More... | |
class | SimulationTimestampFileRead |
A base class for simulation timestamps regarding file reads. More... | |
class | SimulationTimestampFileReadCompletion |
A simulation timestamp class for file read completions. More... | |
class | SimulationTimestampFileReadFailure |
A simulation timestamp class for file read failure times. More... | |
class | SimulationTimestampFileReadStart |
A simulation timestamp class for file read start times. More... | |
class | SimulationTimestampFileWrite |
A base class for simulation timestamps regarding file writes. More... | |
class | SimulationTimestampFileWriteCompletion |
A simulation timestamp class for file write completions. More... | |
class | SimulationTimestampFileWriteFailure |
A simulation timestamp class for file write failure times. More... | |
class | SimulationTimestampFileWriteStart |
A simulation timestamp class for file write start times. More... | |
class | SimulationTimestampLinkUsage |
A simulation timestamp class for link usage. More... | |
class | SimulationTimestampPair |
A base class for simulation timestamps. More... | |
class | SimulationTimestampPstateSet |
A simulation timestamp class for changes in a host's pstate. More... | |
class | SimulationTimestampTask |
A base class for simulation timestamps regarding workflow tasks. More... | |
class | SimulationTimestampTaskCompletion |
A simulation timestamp class for WorkflowTask completion times. More... | |
class | SimulationTimestampTaskFailure |
A simulation timestamp class for WorkflowTask failure times. More... | |
class | SimulationTimestampTaskStart |
A simulation timestamp class for WorkflowTask start times. More... | |
class | SimulationTimestampTaskTermination |
A simulation timestamp class for WorkflowTask termination times. More... | |
class | SimulationTimestampType |
File, Source, Whoami used to be hashed as key for unordered multimap for ongoing file operations. More... | |
class | StandardJobCompletedEvent |
A "standard job has completed" WorkflowExecutionEvent. More... | |
class | StandardJobFailedEvent |
A "standard job has failed" WorkflowExecutionEvent. More... | |
class | StandardJobScheduler |
A (mostly virtual) base class for implementing StandardJob scheduling algorithms to be used by a WMS. More... | |
class | StaticOptimization |
An abstract class that serves as a base class for implementing static (i.e., before workflow execution) optimizations to be used by a WMS. More... | |
class | StorageService |
The storage service base class. More... | |
class | StorageServiceMessagePayload |
Configurable message payloads for a StorageService. More... | |
class | StorageServiceNotEnoughSpace |
A "not enough space on storage service" failure cause. More... | |
class | StorageServiceProperty |
Configurable properties for a StorageService. More... | |
class | TerminalOutput |
Color-enabling wrappers around Simgrid's XBT_INFO, XBT_DEBUG, XBT_WARN logging macros. More... | |
class | TimerEvent |
A "timer went off" WorkflowExecutionEvent. More... | |
class | VirtualizedClusterComputeService |
A virtualized cluster-based compute service. More... | |
class | VirtualizedClusterComputeServiceMessagePayload |
Configurable message payloads for a VirtualizedClusterComputeService. More... | |
class | VirtualizedClusterComputeServiceProperty |
Configurable properties for a VirtualizedClusterComputeService. More... | |
class | WMS |
A workflow management system (WMS) More... | |
class | Workflow |
A workflow (to be executed by a WMS) More... | |
class | WorkflowExecutionEvent |
A class to represent the various execution events that are relevant to the execution of a workflow. More... | |
class | WorkflowExecutionException |
An generic exception that is thrown whenever something unexpected (but simulation-valid) occurs during the simulated execution of a WMS. More... | |
class | WorkflowFile |
A data file used/produced by a WorkflowTask in a Workflow. More... | |
class | WorkflowJob |
Abstraction of a job used for executing tasks in a Workflow. More... | |
class | WorkflowTask |
A computational task in a Workflow. More... | |
Functions | |
bool | compare_last_access (Block *blk1, Block *blk2) |
Helper function to compare block by last access. More... | |
void | generateHostUtilizationGraphLayout (std::vector< WorkflowTaskExecutionInstance > &data) |
Generates graph layout for host utilization and adds that information to the JSON object. More... | |
std::string | generateRandomUsername (unsigned long userid) |
A method to generate a random username, so that generated workload traces look more realistic. More... | |
bool | isPointOnSegment (std::pair< unsigned long long, unsigned long long > segment, unsigned long long point) |
Determines if a point lies on a line segment. More... | |
bool | isSegmentOverlappingXAxis (std::pair< unsigned long long, unsigned long long > segment1, std::pair< unsigned long long, unsigned long long > segment2) |
Determines if two line segments overlap along the x-axis and allows for a slight overlap. More... | |
bool | isSegmentOverlappingYAxis (std::pair< unsigned long long, unsigned long long > segment1, std::pair< unsigned long long, unsigned long long > segment2) |
Determines if two line segments overlap along the y-axis using exact values. More... | |
bool | operator== (const BatchJobSet &left, const BatchJobSet &right) |
Overloaded operator. More... | |
bool | operator== (const BatchJobSetCoreLevel &left, const BatchJobSetCoreLevel &right) |
Overloaded operator. More... | |
static std::tuple< std::string, unsigned long > | parseResourceSpec (const std::string &spec) |
Helper static method to parse resource specifications to the <cores,ram> format. More... | |
void | processUnknownJobTermination (std::string job_id) |
No-op method. More... | |
bool | searchForLayout (std::vector< WorkflowTaskExecutionInstance > &data, std::size_t index) |
Searches for a possible host utilization gantt chart layout and updates the data to include what vertical position to plot each rectangle. More... | |
void | to_json (nlohmann::json &j, const WorkflowTaskExecutionInstance &w) |
Function called by the nlohmann::json constructor when a WorkflowTaskExecutionInstance is passed in as a parameter. This returns the JSON representation of a WorkflowTaskExecutionInstance. The name of this function is important and should not be changed as it is what nlohmann expects (hardcoded in there). More... | |
Detailed Description
Copyright (c) 2017-2018. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (c) 2017. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (c) 2017-2019. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (c) 2020. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (c) 2017-2021. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright (c) 2017-2020. The WRENCH Team.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Function Documentation
◆ compare_last_access()
bool wrench::compare_last_access | ( | Block * | blk1, |
Block * | blk2 | ||
) |
Helper function to compare block by last access.
- Parameters
-
blk1 : a block blk2 : another block
- Returns
- true if blk1 was accessed before blk2, false otherwise
◆ generateHostUtilizationGraphLayout()
void wrench::generateHostUtilizationGraphLayout | ( | std::vector< WorkflowTaskExecutionInstance > & | data | ) |
Generates graph layout for host utilization and adds that information to the JSON object.
Searches for a possible gantt chart layout to represent host utilization. If a layout is found (no tasks overlap), then information about where to plot what is added to the JSON object. Note that this is a possible layout and does not reflect what task ran on what core specifically. For example, we may hav a task that was allocated 2-cores on a idle 4-core host. The task, when plotted on the gantt chart may end up in 1 of 3 positions (using cores 0 and 1, 1 and 2, or 2 and 3).
- Parameters
-
data JSON workflow execution data
- Exceptions
-
std::runtime_error
◆ generateRandomUsername()
std::string wrench::generateRandomUsername | ( | unsigned long | userid | ) |
A method to generate a random username, so that generated workload traces look more realistic.
- Parameters
-
userid numerical userid
- Returns
- a generated alpha userid
◆ isPointOnSegment()
bool wrench::isPointOnSegment | ( | std::pair< unsigned long long, unsigned long long > | segment, |
unsigned long long | point | ||
) |
Determines if a point lies on a line segment.
- Parameters
-
segment pair of start and end points that make up the line segment point point on a 1D plane
- Returns
- bool
◆ isSegmentOverlappingXAxis()
bool wrench::isSegmentOverlappingXAxis | ( | std::pair< unsigned long long, unsigned long long > | segment1, |
std::pair< unsigned long long, unsigned long long > | segment2 | ||
) |
Determines if two line segments overlap along the x-axis and allows for a slight overlap.
- Parameters
-
segment1 first segment segment2 second segment
- Returns
- bool
◆ isSegmentOverlappingYAxis()
bool wrench::isSegmentOverlappingYAxis | ( | std::pair< unsigned long long, unsigned long long > | segment1, |
std::pair< unsigned long long, unsigned long long > | segment2 | ||
) |
Determines if two line segments overlap along the y-axis using exact values.
- Parameters
-
segment1 first segment segment2 second segment
- Returns
- bool
◆ operator==() [1/2]
bool wrench::operator== | ( | const BatchJobSet & | left, |
const BatchJobSet & | right | ||
) |
Overloaded operator.
- Parameters
-
left left-hand side right right-hand side
- Returns
◆ operator==() [2/2]
bool wrench::operator== | ( | const BatchJobSetCoreLevel & | left, |
const BatchJobSetCoreLevel & | right | ||
) |
Overloaded operator.
- Parameters
-
left left-hand side right right-hand side
- Returns
◆ parseResourceSpec()
|
static |
Helper static method to parse resource specifications to the <cores,ram> format.
- Parameters
-
spec specification string
- Returns
- a <cores, ram> tuple
- Exceptions
-
std::invalid_argument
◆ processUnknownJobTermination()
void wrench::BatschedBatchScheduler::processUnknownJobTermination | ( | std::string | job_id | ) |
No-op method.
- Parameters
-
job_id a batch job id
◆ searchForLayout()
bool wrench::searchForLayout | ( | std::vector< WorkflowTaskExecutionInstance > & | data, |
std::size_t | index | ||
) |
Searches for a possible host utilization gantt chart layout and updates the data to include what vertical position to plot each rectangle.
Recursive backtracking search for a valid gantt chart layout. This algorithm looks for a vertical position to place each task execution event such that it doesn't overlap with any other task.
- Parameters
-
data JSON workflow execution data index the index of the workflow execution data up to where we would like to check for a valid layout
- Returns
- bool
◆ to_json()
void wrench::to_json | ( | nlohmann::json & | j, |
const WorkflowTaskExecutionInstance & | w | ||
) |
Function called by the nlohmann::json constructor when a WorkflowTaskExecutionInstance is passed in as a parameter. This returns the JSON representation of a WorkflowTaskExecutionInstance. The name of this function is important and should not be changed as it is what nlohmann expects (hardcoded in there).
- Parameters
-
j reference to a JSON object w reference to a WorkflowTaskExecutionInstance