A cloud-based compute service that manages a set of physical hosts and controls access to their resources by (transparently) executing jobs in VM instances.
More...
|
| CloudService (const std::string &hostname, std::vector< std::string > &execution_hosts, double scratch_space_size, std::map< std::string, std::string > property_list={}, std::map< std::string, std::string > messagepayload_list={}) |
| Constructor. More...
|
|
| ~CloudService () |
| Destructor.
|
|
virtual std::string | createVM (unsigned long num_cores=ComputeService::ALL_CORES, double ram_memory=ComputeService::ALL_RAM, std::map< std::string, std::string > property_list={}, std::map< std::string, std::string > messagepayload_list={}) |
| Create a BareMetalComputeService VM (balances load on execution hosts) More...
|
|
std::vector< std::string > | getExecutionHosts () |
| Get the list of execution hosts available to run VMs. More...
|
|
virtual bool | resumeVM (const std::string &vm_hostname) |
| Resume a suspended VM. More...
|
|
virtual bool | shutdownVM (const std::string &vm_hostname) |
| Shutdown an active VM. More...
|
|
virtual bool | startVM (const std::string &vm_hostname) |
| Start a VM. More...
|
|
void | submitPilotJob (PilotJob *job, std::map< std::string, std::string > &service_specific_args) override |
| Asynchronously submit a pilot job to the cloud service. More...
|
|
void | submitStandardJob (StandardJob *job, std::map< std::string, std::string > &service_specific_args) override |
| Submit a standard job to the cloud service. More...
|
|
virtual bool | suspendVM (const std::string &vm_hostname) |
| Suspend a running VM. More...
|
|
void | terminatePilotJob (PilotJob *job) override |
| non-implemented More...
|
|
void | terminateStandardJob (StandardJob *job) override |
| Terminate a standard job to the compute service (virtual) More...
|
|
void | validateProperties () |
| Validate the service's properties. More...
|
|
| ComputeService (const std::string &hostname, std::string service_name, std::string mailbox_name_prefix, double scratch_space_size) |
| Constructor. More...
|
|
std::map< std::string, double > | getCoreFlopRate () |
| Get the per-core flop rate of the compute service's hosts. More...
|
|
double | getFreeScratchSpaceSize () |
| Get the free space on the compute service's scratch storage space. More...
|
|
std::map< std::string, double > | getMemoryCapacity () |
| Get the RAM capacities for each of the compute service's hosts. More...
|
|
std::map< std::string, unsigned long > | getNumCores () |
| Get core counts for each of the compute service's host. More...
|
|
unsigned long | getNumHosts () |
| Get the number of hosts that the compute service manages. More...
|
|
std::map< std::string, unsigned long > | getNumIdleCores () |
| Get idle core counts for each of the compute service's host. More...
|
|
unsigned long | getTotalNumCores () |
| Get the total core counts for all hosts of the compute service. More...
|
|
unsigned long | getTotalNumIdleCores () |
| Get the total idle core counts for all hosts of the compute service. More...
|
|
double | getTotalScratchSpaceSize () |
| Get the total capacity of the compute service's scratch storage space. More...
|
|
double | getTTL () |
| Get the time-to-live of the compute service. More...
|
|
bool | hasScratch () |
| Checks if the compute service has a scratch space. More...
|
|
void | stop () override |
| Stop the compute service - must be called by the stop() method of derived classes.
|
|
void | submitJob (WorkflowJob *job, std::map< std::string, std::string >={}) |
| Submit a job to the compute service. More...
|
|
bool | supportsPilotJobs () |
| Get whether the compute service supports pilot jobs or not. More...
|
|
bool | supportsStandardJobs () |
| Get whether the compute service supports standard jobs or not. More...
|
|
void | terminateJob (WorkflowJob *job) |
| Terminate a previously-submitted job (which may or may not be running yet) More...
|
|
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...
|
|
| 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.
|
|
|
int | main () override |
| Main method of the daemon. More...
|
|
virtual void | processCreateVM (const std::string &answer_mailbox, const std::string &pm_hostname, const std::string &vm_name, unsigned long num_cores, double ram_memory, std::map< std::string, std::string > &property_list, std::map< std::string, std::string > &messagepayload_list) |
| Create a BareMetalComputeService VM on a physical machine. More...
|
|
virtual void | processGetExecutionHosts (const std::string &answer_mailbox) |
| Process a execution host list request. More...
|
|
virtual void | processGetResourceInformation (const std::string &answer_mailbox) |
| Process a "get resource information message". More...
|
|
virtual bool | processNextMessage () |
| Wait for and react to any incoming message. More...
|
|
virtual void | processResumeVM (const std::string &answer_mailbox, const std::string &vm_hostname) |
| : Process a VM resume request More...
|
|
virtual void | processShutdownVM (const std::string &answer_mailbox, const std::string &vm_hostname) |
| : Process a VM shutdown request More...
|
|
virtual void | processStartVM (const std::string &answer_mailbox, const std::string &vm_name) |
| : Process a VM start request More...
|
|
virtual void | processSubmitPilotJob (const std::string &answer_mailbox, PilotJob *job, std::map< std::string, std::string > &service_specific_args) |
| Process a submit pilot job request. More...
|
|
virtual void | processSubmitStandardJob (const std::string &answer_mailbox, StandardJob *job, std::map< std::string, std::string > &service_specific_args) |
| Process a submit standard job request. More...
|
|
virtual void | processSuspendVM (const std::string &answer_mailbox, const std::string &vm_hostname) |
| : Process a VM suspend request More...
|
|
std::unique_ptr< SimulationMessage > | sendRequest (std::string &answer_mailbox, ComputeServiceMessage *message) |
| Send a message request. More...
|
|
void | stopAllVMs () |
| Terminate all VMs.
|
|
| ComputeService (const std::string &hostname, std::string service_name, std::string mailbox_name_prefix, StorageService *scratch_space) |
| Constructor. More...
|
|
StorageService * | getScratch () |
| Get the compute service's scratch storage space. More...
|
|
std::shared_ptr< StorageService > | getScratchSharedPtr () |
| Get a shared pointer to the compute service's scratch storage space. More...
|
|
| 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...
|
|
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)
|
|
|
std::map< std::string, double > | cs_available_ram |
| Map of available RAM at hosts.
|
|
std::vector< std::string > | execution_hosts |
| List of execution host names.
|
|
std::map< std::string, unsigned long > | used_cores_per_execution_host |
| A map of the number of used cores (per VM) per execution host.
|
|
std::map< std::string, std::tuple< std::shared_ptr< S4U_VirtualMachine >, std::shared_ptr< ComputeService >, unsigned long, unsigned long > > | vm_list |
| A map of VMs described by the VM actor, the actual compute service, the total number of cores, and RAM size.
|
|
StorageService * | scratch_space_storage_service |
| A scratch storage service associated to the compute service.
|
|
std::shared_ptr< StorageService > | scratch_space_storage_service_shared_ptr |
|
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.
|
|
unsigned int | num_starts = 0 |
|
A cloud-based compute service that manages a set of physical hosts and controls access to their resources by (transparently) executing jobs in VM instances.