wrench::WorkunitExecutor Class Reference

An service that performs a WorkUnit. More...

#include <WorkunitExecutor.h>

Inheritance diagram for wrench::WorkunitExecutor:
wrench::Service wrench::S4U_Daemon

Public Member Functions

 WorkunitExecutor (Simulation *simulation, std::string hostname, unsigned long num_cores, double ram_utilization, std::string callback_mailbox, Workunit *workunit, StorageService *scratch_space, StandardJob *job, double thread_startup_overhead, bool simulate_computation_as_sleep)
 Constructor. More...
 
std::set< WorkflowFile * > getFilesStoredInScratch ()
 Retrieve the list of files stored in scratch space storage. More...
 
StandardJobgetJob ()
 Retrieve the job the WorkunitExecutor is working for. More...
 
double getMemoryUtilization ()
 Returns the RAM the service has been allocated. More...
 
unsigned long getNumCores ()
 Returns the number of cores the service has been allocated. More...
 
void kill ()
 Kill the worker thread.
 
- Public Member Functions inherited from wrench::Service
std::string getHostname ()
 Get the name of the host on which the service is / will be running. More...
 
double getMessagePayloadValueAsDouble (std::string)
 Get a message payload of the Service as a double. More...
 
std::string getMessagePayloadValueAsString (std::string)
 Get a message payload of the Service as a string. More...
 
double getNetworkTimeoutValue ()
 Returns the service's network timeout value. More...
 
bool getPropertyValueAsBoolean (std::string)
 Get a property of the Service as a boolean. More...
 
double getPropertyValueAsDouble (std::string)
 Get a property of the Service as a double. More...
 
std::string getPropertyValueAsString (std::string)
 Get a property of the Service as a string. More...
 
bool isUp ()
 Returns true if the service is UP, false otherwise. More...
 
void setNetworkTimeoutValue (double value)
 Sets the service's network timeout value. More...
 
void setStateToDown ()
 Set the state of the service to DOWN.
 
void start (std::shared_ptr< Service > this_service, bool daemonize, bool auto_restart)
 Start the service. More...
 
virtual void stop ()
 Synchronously stop the service (does nothing if the service is already stopped) More...
 
- Public Member Functions inherited from wrench::S4U_Daemon
 S4U_Daemon (std::string hostname, std::string process_name_prefix, std::string mailbox_prefix)
 Constructor (daemon with a mailbox) More...
 
virtual ~S4U_Daemon ()
 Constructor (daemon without a mailbox) More...
 
virtual void cleanup ()
 Cleanup function called when the daemon terminates (for whatever reason)
 
void createLifeSaver (std::shared_ptr< S4U_Daemon > reference)
 Create a life saver for the daemon. More...
 
std::string getName ()
 Retrieve the process name. More...
 
bool hasCleanlyTerminated ()
 Returned the terminated status of the daemon/actor.
 
bool isSetToAutoRestart ()
 Return the auto-restart status of the daemon. More...
 
bool join ()
 Join (i.e., wait for) the daemon. More...
 
void resume ()
 Resume the daemon/actor.
 
void setCleanlyTerminated ()
 Set the terminated status of the daemon/actor.
 
void startDaemon (bool daemonized, bool auto_restart)
 Start the daemon. More...
 
void suspend ()
 Suspend the daemon/actor.
 

Public Attributes

Workunitworkunit
 The Workunit this WorkunitExecutor is supposed to perform.
 
- Public Attributes inherited from wrench::S4U_Daemon
std::string hostname
 The name of the host on which the daemon is running.
 
LifeSaver * life_saver = nullptr
 The daemon's life saver.
 
std::string mailbox_name
 The name of the daemon's mailbox.
 
std::string process_name
 The name of the daemon.
 
Simulationsimulation
 a pointer to the simulation object
 

Additional Inherited Members

- Public Types inherited from wrench::Service
enum  State { UP, DOWN }
 Service states. More...
 
- Protected Member Functions inherited from wrench::Service
 Service (std::string hostname, std::string process_name_prefix, std::string mailbox_name_prefix)
 Constructor. More...
 
void serviceSanityCheck ()
 Check whether the service is properly configured and running. More...
 
void setMessagePayload (std::string, std::string)
 Set a message payload of the Service. More...
 
void setMessagePayloads (std::map< std::string, std::string > default_messagepayload_values, std::map< std::string, std::string > overriden_messagepayload_values)
 Set default and user-defined message payloads. More...
 
void setProperties (std::map< std::string, std::string > default_property_values, std::map< std::string, std::string > overriden_property_values)
 Set default and user-defined properties. More...
 
void setProperty (std::string, std::string)
 Set a property of the Service. More...
 
- Protected Member Functions inherited from wrench::S4U_Daemon
void acquireDaemonLock ()
 Lock the daemon's lock.
 
void killActor ()
 Kill the daemon/actor.
 
void releaseDaemonLock ()
 Unlock the daemon's lock.
 
void runMainMethod ()
 Method that run's the user-defined main method (that's called by the S4U actor class)
 
- Protected Attributes inherited from wrench::Service
std::map< std::string, std::string > messagepayload_list
 The service's messagepayload list.
 
std::string name
 The service's name.
 
double network_timeout = 30.0
 The time (in seconds) after which a service that doesn't send back a reply (control) message causes a NetworkTimeOut exception. (default: 30 second; if <0 never timeout)
 
std::map< std::string, std::string > property_list
 The service's property list.
 
State state
 The service's state.
 
- Protected Attributes inherited from wrench::S4U_Daemon
unsigned int num_starts = 0
 

Detailed Description

An service that performs a WorkUnit.

Constructor & Destructor Documentation

◆ WorkunitExecutor()

wrench::WorkunitExecutor::WorkunitExecutor ( Simulation simulation,
std::string  hostname,
unsigned long  num_cores,
double  ram_utilization,
std::string  callback_mailbox,
Workunit workunit,
StorageService scratch_space,
StandardJob job,
double  thread_startup_overhead,
bool  simulate_computation_as_sleep 
)

Constructor.

Parameters
simulationa pointer to the simulation object
hostnamethe name of the host on which the workunit execution will run
num_coresthe number of cores available to the workunit executor
ram_utilizationthe number of bytes of RAM used by the service
callback_mailboxthe callback mailbox to which a "work done" or "work failed" message will be sent
workunitthe work unit to perform
scratch_spacethe service's scratch storage service (nullptr if none)
jobthe SandardJob the workunit corresponds to
thread_startup_overheadthe thread_startup overhead, in seconds
simulate_computation_as_sleepsimulate computation as a sleep instead of an actual compute thread (for simulation scalability reasons)

Member Function Documentation

◆ getFilesStoredInScratch()

std::set< WorkflowFile * > wrench::WorkunitExecutor::getFilesStoredInScratch ( )

Retrieve the list of files stored in scratch space storage.

Returns
a list of files

◆ getJob()

StandardJob * wrench::WorkunitExecutor::getJob ( )

Retrieve the job the WorkunitExecutor is working for.

Returns
a job

◆ getMemoryUtilization()

double wrench::WorkunitExecutor::getMemoryUtilization ( )

Returns the RAM the service has been allocated.

Returns
a number of bytes

◆ getNumCores()

unsigned long wrench::WorkunitExecutor::getNumCores ( )

Returns the number of cores the service has been allocated.

Returns
a number of cores

The documentation for this class was generated from the following files:
  • /Users/rafsilva/Documents/isi/workspace/wrench/wrench/include/wrench/services/compute/workunit_executor/WorkunitExecutor.h
  • /Users/rafsilva/Documents/isi/workspace/wrench/wrench/src/wrench/services/compute/work_unit_executor/WorkunitExecutor.cpp