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 being de-allocated). More...
#include <Simulation.h>
Public Member Functions | |
Simulation () | |
Constructor. | |
~Simulation () | |
Destructor. | |
template<class T > | |
std::shared_ptr< T > | add (T *t) |
Method to add a service to the simulation. More... | |
double | getEnergyConsumed (const std::string &hostname) |
Obtains the current energy consumption of a host. More... | |
double | getEnergyConsumed (const std::string &hostname, bool record_as_time_stamp) |
Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true. More... | |
std::map< std::string, double > | getEnergyConsumed (const std::vector< std::string > &hostnames) |
Obtains the current energy consumption of a host. More... | |
std::map< std::string, double > | getEnergyConsumed (const std::vector< std::string > &hostnames, bool record_as_time_stamps) |
Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true. More... | |
double | getLinkUsage (const std::string &linkname, bool record_as_time_stamp) |
Obtains the current link bandwidth usage on a link and will add SimulationTimestampLinkUsage to simulation output if record_as_time_stamp is set to true. More... | |
SimulationOutput & | getOutput () |
Get the simulation output object. More... | |
void | init (int *, char **) |
Initialize the simulation, which parses out WRENCH-specific and SimGrid-specific command-line arguments, if any. More... | |
void | instantiatePlatform (std::string) |
Instantiate a simulated platform. More... | |
void | launch () |
Launch the simulation. More... | |
void | readFromDisk (double num_bytes, std::string hostname, std::string mount_point) |
Wrapper enabling timestamps for disk reads. More... | |
void | readFromDiskAndWriteToDiskConcurrently (double num_bytes_to_read, double num_bytes_to_write, std::string hostname, std::string read_mount_point, std::string write_mount_point) |
Wrapper enabling timestamps for concurrent disk read/writes. More... | |
void | setPstate (const std::string &hostname, int pstate) |
Set the power state of the host. More... | |
void | stageFile (WorkflowFile *file, std::shared_ptr< StorageService > ss) |
Stage a copy of a file at a storage service in the root of the (unique) mount point. More... | |
void | stageFile (WorkflowFile *file, std::shared_ptr< StorageService > ss, std::string directory_absolute_path) |
Stage a copy of a file at a storage service in a particular directory. More... | |
std::shared_ptr< ComputeService > | startNewService (ComputeService *service) |
Starts a new compute service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor. More... | |
std::shared_ptr< FileRegistryService > | startNewService (FileRegistryService *service) |
Starts a new file registry service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor. More... | |
std::shared_ptr< NetworkProximityService > | startNewService (NetworkProximityService *service) |
Starts a new network proximity service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor. More... | |
std::shared_ptr< StorageService > | startNewService (StorageService *service) |
Starts a new storage service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor. More... | |
void | writeToDisk (double num_bytes, std::string hostname, std::string mount_point) |
Wrapper enabling timestamps for disk writes. More... | |
Static Public Member Functions | |
static void | compute (double flops) |
Make the calling process compute. More... | |
static bool | doesHostExist (std::string hostname) |
Wrapper for S4U_Simulation hostExists() More... | |
static bool | doesLinkExist (std::string linkname) |
Wrapper for S4U_Simulation linkExists() More... | |
static int | getCurrentPstate (const std::string &hostname) |
Get the current power state of a host. More... | |
static double | getCurrentSimulatedDate () |
Get the current simulated date. More... | |
static double | getFlopRate () |
Get the flop rate of one core of the host on which the calling process is running. More... | |
static double | getHostFlopRate (std::string hostname) |
Get the flop rate of one core of a host given a hostname. More... | |
static double | getHostMemoryCapacity (std::string hostname) |
Get the memory capacity of a host given a hostname. More... | |
static std::string | getHostName () |
Get the name of the host on which the calling process is running. More... | |
static std::vector< std::string > | getHostnameList () |
Get the list of names of all the hosts in the platform. More... | |
static std::map< std::string, std::vector< std::string > > | getHostnameListByCluster () |
Get the list of names of all the hosts in each cluster composing the platform. More... | |
static unsigned long | getHostNumCores (std::string hostname) |
Get the number of cores of a host given a hostname. More... | |
static double | getLinkBandwidth (std::string linkname) |
Get the max bandwidth of a particular link. More... | |
static std::vector< std::string > | getLinknameList () |
Get the list of names of all the links in the platform. More... | |
static double | getLinkUsage (std::string linkname) |
Get the current usage of a particular link. More... | |
static std::vector< int > | getListOfPstates (const std::string &hostname) |
Get the list of power states available for a host. More... | |
static double | getMaxPowerConsumption (const std::string &hostname) |
Get the maximum power consumption for the host (i.e., 100% utilization) at its current pstate. More... | |
static double | getMemoryCapacity () |
Get the memory capacity of the host on which the calling process is running. More... | |
static double | getMinPowerConsumption (const std::string &hostname) |
Get the minimum power consumption for the host (i.e., idling) at its current pstate. More... | |
static int | getNumberofPstates (const std::string &hostname) |
Get the total number of power states of a host. More... | |
static unsigned long | getNumCores () |
Get the number of cores of the host on which the calling process is running. More... | |
static bool | isHostOn (std::string hostname) |
Returns whether a host is on or not. More... | |
static bool | isLinkOn (std::string linkname) |
Returns whether a link is on or not. More... | |
static void | sleep (double duration) |
Make the calling process sleep for a number of (simulated) seconds. More... | |
static void | turnOffHost (std::string hostname) |
Turns off a host. More... | |
static void | turnOffLink (std::string linkname) |
Turns off a link. More... | |
static void | turnOnHost (std::string hostname) |
Turns on a host. More... | |
static void | turnOnLink (std::string linkname) |
Turns on a link. More... | |
Detailed Description
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 being de-allocated).
Member Function Documentation
◆ add()
|
inline |
Method to add a service to the simulation.
- Template Parameters
-
T The service class (base class is Service)
- Parameters
-
t the service object
- Returns
- a shared_ptr to the service object
◆ compute()
|
static |
Make the calling process compute.
- Parameters
-
flops a number of floating point operations
◆ doesHostExist()
|
static |
Wrapper for S4U_Simulation hostExists()
- Parameters
-
hostname - name of host being queried
- Returns
- boolean of existence
◆ doesLinkExist()
|
static |
Wrapper for S4U_Simulation linkExists()
- Parameters
-
linkname - name of link being queried
- Returns
- boolean of existence
◆ getCurrentPstate()
|
static |
Get the current power state of a host.
- Parameters
-
hostname the host name
- Returns
- The index of the current pstate of the host (as specified in the platform xml description file)
◆ getCurrentSimulatedDate()
|
static |
Get the current simulated date.
- Returns
- a date
◆ getEnergyConsumed() [1/4]
double wrench::Simulation::getEnergyConsumed | ( | const std::string & | hostname | ) |
Obtains the current energy consumption of a host.
- Parameters
-
hostname the host name
- Returns
- current energy consumption in joules
- Exceptions
-
std::invalid_argument
◆ getEnergyConsumed() [2/4]
double wrench::Simulation::getEnergyConsumed | ( | const std::string & | hostname, |
bool | record_as_time_stamp | ||
) |
Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true.
- Parameters
-
hostname the host name record_as_time_stamp bool signaling whether or not to record a SimulationTimestampEnergyConsumption object
- Returns
- current energy consumption in joules
- Exceptions
-
std::invalid_argument
◆ getEnergyConsumed() [3/4]
std::map< std::string, double > wrench::Simulation::getEnergyConsumed | ( | const std::vector< std::string > & | hostnames | ) |
Obtains the current energy consumption of a host.
- Parameters
-
hostnames the list of hostnames
- Returns
- current energy consumption in joules for each host, as a map indexed by hostnames
- Exceptions
-
std::invalid_argument
◆ getEnergyConsumed() [4/4]
std::map< std::string, double > wrench::Simulation::getEnergyConsumed | ( | const std::vector< std::string > & | hostnames, |
bool | record_as_time_stamps | ||
) |
Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true.
- Parameters
-
hostnames the list of hostnames record_as_time_stamps whether or not to record a SimulationTimestampEnergyConsumption object for each host when this method is called
- Returns
- current energy consumption in joules for each host, as a map indexed by hostnames
- Exceptions
-
std::invalid_argument
◆ getFlopRate()
|
static |
Get the flop rate of one core of the host on which the calling process is running.
- Returns
- a flop rate
◆ getHostFlopRate()
|
static |
Get the flop rate of one core of a host given a hostname.
- Parameters
-
hostname the hostname
- Returns
- a flop rate (flop / sec)
◆ getHostMemoryCapacity()
|
static |
Get the memory capacity of a host given a hostname.
- Parameters
-
hostname the hostname
- Returns
- a memory capacity in bytes
◆ getHostName()
|
static |
Get the name of the host on which the calling process is running.
- Returns
- a host name
◆ getHostnameList()
|
static |
Get the list of names of all the hosts in the platform.
- Returns
- a vector of hostnames
◆ getHostnameListByCluster()
|
static |
Get the list of names of all the hosts in each cluster composing the platform.
- Returns
- a map of lists of hosts, indexed by cluster name
◆ getHostNumCores()
|
static |
Get the number of cores of a host given a hostname.
- Parameters
-
hostname the hostname
- Returns
- a number of cores
◆ getLinkBandwidth()
|
static |
Get the max bandwidth of a particular link.
- Parameters
-
link_name the link's name
- Returns
- a bandwidth in Bps
◆ getLinknameList()
|
static |
Get the list of names of all the links in the platform.
- Returns
- a vector of link names
◆ getLinkUsage() [1/2]
double wrench::Simulation::getLinkUsage | ( | const std::string & | linkname, |
bool | record_as_time_stamp | ||
) |
Obtains the current link bandwidth usage on a link and will add SimulationTimestampLinkUsage to simulation output if record_as_time_stamp is set to true.
- Parameters
-
linkname the link name record_as_time_stamp bool signaling whether or not to record a SimulationTimestampLinkUsage object
- Returns
- current bandwidth usage in Bps
- Exceptions
-
std::invalid_argument
◆ getLinkUsage() [2/2]
|
static |
Get the current usage of a particular link.
- Parameters
-
link_name the link's name
- Returns
- a bandwidth usage
◆ getListOfPstates()
|
static |
Get the list of power states available for a host.
- Parameters
-
hostname the host name
- Returns
- a list of power states available for the host (as specified in the platform xml description file)
◆ getMaxPowerConsumption()
|
static |
Get the maximum power consumption for the host (i.e., 100% utilization) at its current pstate.
- Parameters
-
hostname the host name
- Returns
- The "100% used" power consumption (as specified in the platform xml description file)
◆ getMemoryCapacity()
|
static |
Get the memory capacity of the host on which the calling process is running.
- Returns
- a memory capacity in bytes
◆ getMinPowerConsumption()
|
static |
Get the minimum power consumption for the host (i.e., idling) at its current pstate.
- Parameters
-
hostname the host name
- Returns
- The "idling" power consumption (as specified in the platform xml description file)
◆ getNumberofPstates()
|
static |
Get the total number of power states of a host.
- Parameters
-
hostname the host name
- Returns
- The number of power states available for the host (as specified in the platform xml description file)
◆ getNumCores()
|
static |
Get the number of cores of the host on which the calling process is running.
- Returns
- a number of cores
◆ getOutput()
SimulationOutput & wrench::Simulation::getOutput | ( | ) |
Get the simulation output object.
- Returns
- simulation output object
◆ init()
void wrench::Simulation::init | ( | int * | argc, |
char ** | argv | ||
) |
Initialize the simulation, which parses out WRENCH-specific and SimGrid-specific command-line arguments, if any.
- Parameters
-
argc main()'s argument count argv main()'s argument list
- Exceptions
-
std::invalid_argument
◆ instantiatePlatform()
void wrench::Simulation::instantiatePlatform | ( | std::string | filename | ) |
Instantiate a simulated platform.
- Parameters
-
filename the path to a SimGrid XML platform description file
- Exceptions
-
std::runtime_error
◆ isHostOn()
|
static |
Returns whether a host is on or not.
- Parameters
-
hostname the hostname
- Returns
- true or false
◆ isLinkOn()
|
static |
Returns whether a link is on or not.
- Parameters
-
linkname the linkname
- Returns
- true or false
◆ launch()
void wrench::Simulation::launch | ( | ) |
Launch the simulation.
- Exceptions
-
std::runtime_error
◆ readFromDisk()
void wrench::Simulation::readFromDisk | ( | double | num_bytes, |
std::string | hostname, | ||
std::string | mount_point | ||
) |
Wrapper enabling timestamps for disk reads.
- Parameters
-
num_bytes - number of bytes read hostname - hostname to read from mount_point - mount point of disk to read from
- Exceptions
-
invalid_argument
◆ readFromDiskAndWriteToDiskConcurrently()
void wrench::Simulation::readFromDiskAndWriteToDiskConcurrently | ( | double | num_bytes_to_read, |
double | num_bytes_to_write, | ||
std::string | hostname, | ||
std::string | read_mount_point, | ||
std::string | write_mount_point | ||
) |
Wrapper enabling timestamps for concurrent disk read/writes.
- Parameters
-
num_bytes_to_read - number of bytes read num_bytes_to_write - number of bytes written hostname - hostname where disk is located read_mount_point - mount point of disk to read from write_mount_point - mount point of disk to write to
- Exceptions
-
invalid_argument
◆ setPstate()
void wrench::Simulation::setPstate | ( | const std::string & | hostname, |
int | pstate | ||
) |
Set the power state of the host.
- Parameters
-
hostname the host name pstate the power state index (as specified in the platform xml description file)
◆ sleep()
|
static |
Make the calling process sleep for a number of (simulated) seconds.
- Parameters
-
duration a number of seconds
◆ stageFile() [1/2]
void wrench::Simulation::stageFile | ( | WorkflowFile * | file, |
std::shared_ptr< StorageService > | storage_service | ||
) |
Stage a copy of a file at a storage service in the root of the (unique) mount point.
- Parameters
-
file a file to stage on a storage service storage_service a storage service
- Exceptions
-
std::runtime_error std::invalid_argument
◆ stageFile() [2/2]
void wrench::Simulation::stageFile | ( | WorkflowFile * | file, |
std::shared_ptr< StorageService > | storage_service, | ||
std::string | directory_absolute_path | ||
) |
Stage a copy of a file at a storage service in a particular directory.
- Parameters
-
file a file to stage on a storage service storage_service a storage service directory_absolute_path the absolute path of the directory where the file should be stored
- Exceptions
-
std::runtime_error std::invalid_argument
◆ startNewService() [1/4]
std::shared_ptr< ComputeService > wrench::Simulation::startNewService | ( | ComputeService * | service | ) |
Starts a new compute service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor.
- Parameters
-
service An instance of a service
- Returns
- A pointer to the service instance
- Exceptions
-
std::invalid_argument std::runtime_error
◆ startNewService() [2/4]
std::shared_ptr< FileRegistryService > wrench::Simulation::startNewService | ( | FileRegistryService * | service | ) |
Starts a new file registry service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor.
- Parameters
-
service An instance of a service
- Returns
- A pointer to the service instance
- Exceptions
-
std::invalid_argument std::runtime_error
◆ startNewService() [3/4]
std::shared_ptr< NetworkProximityService > wrench::Simulation::startNewService | ( | NetworkProximityService * | service | ) |
Starts a new network proximity service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor.
- Parameters
-
service An instance of a service
- Returns
- A pointer to the service instance
- Exceptions
-
std::invalid_argument std::runtime_error
◆ startNewService() [4/4]
std::shared_ptr< StorageService > wrench::Simulation::startNewService | ( | StorageService * | service | ) |
Starts a new storage service during WMS execution (i.e., one that was not passed to Simulation::add() before Simulation::launch() was called). The simulation takes ownership of the reference and will call the destructor.
- Parameters
-
service An instance of a service
- Returns
- A pointer to the service instance
- Exceptions
-
std::invalid_argument std::runtime_error
◆ turnOffHost()
|
static |
Turns off a host.
- Parameters
-
hostname the hostname
◆ turnOffLink()
|
static |
Turns off a link.
- Parameters
-
linkname the linkname
◆ turnOnHost()
|
static |
Turns on a host.
- Parameters
-
hostname the hostname
◆ turnOnLink()
|
static |
Turns on a link.
- Parameters
-
linkname the linkname
◆ writeToDisk()
void wrench::Simulation::writeToDisk | ( | double | num_bytes, |
std::string | hostname, | ||
std::string | mount_point | ||
) |
Wrapper enabling timestamps for disk writes.
- Parameters
-
num_bytes - number of bytes written hostname - hostname to write to mount_point - mount point of disk to write to
- Exceptions
-
invalid_argument
The documentation for this class was generated from the following files:
- Simulation.h
- Simulation.cpp