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...
#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 &link_name, bool record_as_time_stamp) |
Get the current usage of a particular link. 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 | 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< MemoryManager > | startNewService (MemoryManager *service) |
Starts a new memory_manager_service manager service during 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... | |
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 | 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_manager_service capacity of a host given a hostname. More... | |
static std::vector< std::string > | getHostnameList () |
Get the list of names of all the physical hosts in the platform. More... | |
static std::map< std::string, std::vector< std::string > > | getHostnameListByCluster () |
** More... | |
static unsigned long | getHostNumCores (std::string hostname) |
Get the number of cores of a host given a hostname. 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 | 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 std::vector< std::string > | getRoute (std::string &src_host, std::string &dst_host) |
Get the list of link names on the route between two hosts. 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_manager_service 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
◆ 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_manager_service capacity of a host given a hostname.
- Parameters
-
hostname the hostname
- Returns
- a memory_manager_service capacity in bytes
◆ getHostnameList()
|
static |
Get the list of names of all the physical 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
◆ getLinkUsage()
double wrench::Simulation::getLinkUsage | ( | const std::string & | link_name, |
bool | record_as_time_stamp | ||
) |
Get the current usage of a particular link.
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
-
link_name the link's name
- Returns
- a bandwidth usage
- Parameters
-
link_name the link's 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
◆ 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)
◆ 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)
◆ getOutput()
SimulationOutput & wrench::Simulation::getOutput | ( | ) |
Get the simulation output object.
- Returns
- simulation output object
◆ getRoute()
|
static |
Get the list of link names on the route between two hosts.
- Parameters
-
src_host src hostname dst_host dst hostname
- Returns
- a vector of link names
◆ 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
◆ 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/5]
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/5]
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/5]
std::shared_ptr< MemoryManager > wrench::Simulation::startNewService | ( | MemoryManager * | service | ) |
Starts a new memory_manager_service manager service during 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/5]
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() [5/5]
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
The documentation for this class was generated from the following files:
- Simulation.h
- Simulation.cpp