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...
 
std::map< std::string, double > getEnergyConsumed (const std::vector< std::string > &hostnames)
 Obtains the current energy consumption of a host. 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 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...
 

Static Public Member Functions

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::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 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...
 

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

template<class T >
std::shared_ptr<T> wrench::Simulation::add ( T *  t)
inline

Method to add a service to the simulation.

Template Parameters
TThe service class (base class is Service)
Parameters
tthe service object
Returns
a shared_ptr to the service object

◆ getEnergyConsumed() [1/2]

double wrench::Simulation::getEnergyConsumed ( const std::string &  hostname)

Obtains the current energy consumption of a host.

Parameters
hostnamethe host name
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)

Obtains the current energy consumption of a host.

Parameters
hostnamesthe list of hostnames
Returns
current energy consumption in joules for each host, as a map indexed by hostnames
Exceptions
std::invalid_argument

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

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

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)

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

◆ 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

◆ 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
filea file to stage on a storage service
storage_servicea 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
filea file to stage on a storage service
storage_servicea storage service
directory_absolute_paththe absolute path of the directory where the file should be stored
Exceptions
std::runtime_error
std::invalid_argument

The documentation for this class was generated from the following files: