A class that provides basic simulation methods. More...

#include <Simulation.h>

Public Member Functions

 Simulation ()
 Constructor.
 
 ~Simulation ()
 Destructor.
 
ComputeServiceadd (ComputeService *)
 Add a ComputeService to the simulation. The simulation takes ownership of the reference and will call the destructor. More...
 
StorageServiceadd (StorageService *)
 Add a StorageService to the simulation. The simulation takes ownership of the reference and will call the destructor. More...
 
NetworkProximityServiceadd (NetworkProximityService *)
 Add a NetworkProximityService to the simulation. The simulation takes ownership of the reference and will call the destructor. More...
 
WMSadd (WMS *)
 Add a WMS for the simulation. The simulation takes ownership of the reference and will call the destructor. More...
 
FileRegistryServiceadd (FileRegistryService *)
 Set a FileRegistryService for the simulation. The simulation takes ownership of the reference and will call the destructor. More...
 
double getEnergyConsumed (const std::string &hostname, bool record_as_time_stamp=false)
 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, bool record_as_time_stamps=false)
 Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true. More...
 
std::vector< std::string > getHostnameList ()
 Get the list of names of all the hosts in the platform. More...
 
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...
 
SimulationOutputgetOutput ()
 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, StorageService *storage_service)
 Stage a copy of a file on a storage service (to the "/" partition) More...
 
void stageFile (WorkflowFile *file, StorageService *storage_service, std::string partition)
 Stage a copy of a file on a storage service. More...
 
void stageFiles (std::map< std::string, WorkflowFile *> files, StorageService *storage_service)
 Stage file copies on a storage service (to the "/" partition) More...
 
void stageFiles (std::map< std::string, WorkflowFile *> files, StorageService *storage_service, std::string partition)
 Stage file copies on a storage service. More...
 
ComputeServicestartNewService (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...
 
StorageServicestartNewService (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...
 
NetworkProximityServicestartNewService (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...
 
FileRegistryServicestartNewService (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...
 

Static Public Member Functions

static void compute (double flops)
 Make the calling process compute. 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 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 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 void sleep (double duration)
 Make the calling process sleep for a number of (simulated) seconds. More...
 

Detailed Description

A class that provides basic simulation methods.

Member Function Documentation

◆ add() [1/5]

ComputeService * wrench::Simulation::add ( ComputeService service)

Add a ComputeService to the simulation. The simulation takes ownership of the reference and will call the destructor.

Parameters
servicea compute service
Returns
the ComputeService
Exceptions
std::invalid_argument
std::runtime_error

◆ add() [2/5]

StorageService * wrench::Simulation::add ( StorageService service)

Add a StorageService to the simulation. The simulation takes ownership of the reference and will call the destructor.

Parameters
servicea storage service
Returns
the StorageService
Exceptions
std::invalid_argument
std::runtime_error

◆ add() [3/5]

NetworkProximityService * wrench::Simulation::add ( NetworkProximityService service)

Add a NetworkProximityService to the simulation. The simulation takes ownership of the reference and will call the destructor.

Parameters
servicea network proximity service
Returns
the NetworkProximityService
Exceptions
std::invalid_argument
std::runtime_error

◆ add() [4/5]

WMS * wrench::Simulation::add ( WMS wms)

Add a WMS for the simulation. The simulation takes ownership of the reference and will call the destructor.

Parameters
wmsa WMS
Returns
the WMS
Exceptions
std::invalid_argument
std::runtime_error

◆ add() [5/5]

FileRegistryService * wrench::Simulation::add ( FileRegistryService file_registry_service)

Set a FileRegistryService for the simulation. The simulation takes ownership of the reference and will call the destructor.

Parameters
file_registry_servicea file registry service
Returns
the FileRegistryService
Exceptions
std::invalid_argument

◆ compute()

void wrench::Simulation::compute ( double  flops)
static

Make the calling process compute.

Parameters
durationa number of floating point operations

◆ getCurrentPstate()

int wrench::Simulation::getCurrentPstate ( const std::string &  hostname)
static

Get the current power state of a host.

Parameters
hostnamethe host name
Returns
The index of the current pstate of the host (as specified in the platform xml description file)

◆ getCurrentSimulatedDate()

double wrench::Simulation::getCurrentSimulatedDate ( )
static

Get the current simulated date.

Returns
a date

◆ getEnergyConsumed() [1/2]

double wrench::Simulation::getEnergyConsumed ( const std::string &  hostname,
bool  record_as_time_stamp = false 
)

Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true.

Parameters
hostnamethe host name
record_as_time_stampbool signaling whether or not to record a SimulationTimestampEnergyConsumption object
Returns
current energy consumption in joules
Exceptions
std::invalid_argument

◆ getEnergyConsumed() [2/2]

std::map< std::string, double > wrench::Simulation::getEnergyConsumed ( const std::vector< std::string > &  hostnames,
bool  record_as_time_stamps = false 
)

Obtains the current energy consumption of a host and will add SimulationTimestampEnergyConsumption to simulation output if can_record is set to true.

Parameters
hostnamesthe list of hostnames
record_as_time_stampswhether 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()

double wrench::Simulation::getFlopRate ( )
static

Get the flop rate of one core of the host on which the calling process is running.

Returns
a flop rate

◆ getHostFlopRate()

double wrench::Simulation::getHostFlopRate ( std::string  hostname)
static

Get the flop rate of one core of a host given a hostname.

Parameters
hostnamethe hostname
Returns
a flop rate (flop / sec)

◆ getHostMemoryCapacity()

double wrench::Simulation::getHostMemoryCapacity ( std::string  hostname)
static

Get the memory capacity of a host given a hostname.

Parameters
hostnamethe hostname
Returns
a memory capacity in bytes

◆ getHostnameList()

std::vector< std::string > wrench::Simulation::getHostnameList ( )

Get the list of names of all the hosts in the platform.

Returns
a vector of hostnames

◆ getHostnameListByCluster()

std::map< std::string, std::vector< std::string > > wrench::Simulation::getHostnameListByCluster ( )

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()

unsigned long wrench::Simulation::getHostNumCores ( std::string  hostname)
static

Get the number of cores of a host given a hostname.

Parameters
hostnamethe hostname
Returns
a number of cores

◆ getListOfPstates()

std::vector< int > wrench::Simulation::getListOfPstates ( const std::string &  hostname)
static

Get the list of power states available for a host.

Parameters
hostnamethe host name
Returns
a list of power states available for the host (as specified in the platform xml description file)

◆ getMaxPowerConsumption()

double wrench::Simulation::getMaxPowerConsumption ( const std::string &  hostname)
static

Get the maximum power consumption for the host (i.e., 100% utilization) at its current pstate.

Parameters
hostnamethe host name
Returns
The "100% used" power consumption (as specified in the platform xml description file)

◆ getMemoryCapacity()

double wrench::Simulation::getMemoryCapacity ( )
static

Get the memory capacity of the host on which the calling process is running.

Returns
a memory capacity in bytes

◆ getMinPowerConsumption()

double wrench::Simulation::getMinPowerConsumption ( const std::string &  hostname)
static

Get the minimum power consumption for the host (i.e., idling) at its current pstate.

Parameters
hostnamethe host name
Returns
The "idling" power consumption (as specified in the platform xml description file)

◆ getNumberofPstates()

int wrench::Simulation::getNumberofPstates ( const std::string &  hostname)
static

Get the total number of power states of a host.

Parameters
hostnamethe host name
Returns
The number of power states available for the host (as specified in the platform xml description file)

◆ getNumCores()

unsigned long wrench::Simulation::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
argcmain()'s argument count
argvmain()'s argument list
Exceptions
std::invalid_argument

◆ instantiatePlatform()

void wrench::Simulation::instantiatePlatform ( std::string  filename)

Instantiate a simulated platform.

Parameters
filenamethe path to a SimGrid XML platform description file
Exceptions
std::runtime_error

◆ 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
hostnamethe host name
pstatethe power state index (as specified in the platform xml description file)

◆ sleep()

void wrench::Simulation::sleep ( double  duration)
static

Make the calling process sleep for a number of (simulated) seconds.

Parameters
durationa number of seconds

◆ stageFile() [1/2]

void wrench::Simulation::stageFile ( WorkflowFile file,
StorageService storage_service 
)

Stage a copy of a file on a storage service (to the "/" partition)

Parameters
filea file to stage on a storage service
storage_servicethe storage service
Exceptions
std::runtime_error
std::invalid_argument

◆ stageFile() [2/2]

void wrench::Simulation::stageFile ( WorkflowFile file,
StorageService storage_service,
std::string  partition 
)

Stage a copy of a file on a storage service.

Parameters
filea file to stage on a storage service
storage_servicethe storage service
partitionthe partition on which to store the files
Exceptions
std::runtime_error
std::invalid_argument

◆ stageFiles() [1/2]

void wrench::Simulation::stageFiles ( std::map< std::string, WorkflowFile *>  files,
StorageService storage_service 
)

Stage file copies on a storage service (to the "/" partition)

Parameters
filesa map of files (indexed by file ids) to stage on a storage service
storage_servicethe storage service
Exceptions
std::runtime_error
std::invalid_argument

◆ stageFiles() [2/2]

void wrench::Simulation::stageFiles ( std::map< std::string, WorkflowFile *>  files,
StorageService storage_service,
std::string  partition 
)

Stage file copies on a storage service.

Parameters
filesa map of files (indexed by file ids) to stage on a storage service
storage_servicethe storage service
partitionthe partition on which to store the files
Exceptions
std::runtime_error
std::invalid_argument

◆ startNewService() [1/4]

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
serviceAn instance of a service
Returns
A pointer to the service instance
Exceptions
std::invalid_argument
std::runtime_error

◆ startNewService() [2/4]

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
serviceAn instance of a service
Returns
A pointer to the service instance
Exceptions
std::invalid_argument
std::runtime_error

◆ startNewService() [3/4]

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
serviceAn instance of a service
Returns
A pointer to the service instance
Exceptions
std::invalid_argument
std::runtime_error

◆ startNewService() [4/4]

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
serviceAn instance of a service
Returns
A pointer to the service instance
Exceptions
std::invalid_argument
std::runtime_error

The documentation for this class was generated from the following files:
  • /Users/rafsilva/Documents/isi/workspace/wrench/wrench/include/wrench/simulation/Simulation.h
  • /Users/rafsilva/Documents/isi/workspace/wrench/wrench/src/wrench/simulation/Simulation.cpp