wrench::VirtualizedClusterService Class Reference
A virtualized cluster-based compute service. More...
#include <VirtualizedClusterService.h>
Inheritance diagram for wrench::VirtualizedClusterService:
Public Member Functions | |
VirtualizedClusterService (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... | |
virtual std::string | createVM (const std::string &pm_hostname, 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 on a physical machine. More... | |
virtual bool | migrateVM (const std::string &vm_hostname, const std::string &dest_pm_hostname) |
Synchronously migrate a VM to another physical host. More... | |
Public Member Functions inherited from wrench::CloudService | |
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... | |
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... | |
virtual bool | suspendVM (const std::string &vm_hostname) |
Suspend a running VM. More... | |
Public Member Functions inherited from wrench::ComputeService | |
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... | |
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... | |
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... | |
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 | 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 | start (std::shared_ptr< Service > this_service, bool daemonize, bool auto_restart) |
Start the service. More... | |
Additional Inherited Members | |
Public Types inherited from wrench::Service | |
enum | State { UP, DOWN } |
Service states. More... | |
Static Public Attributes inherited from wrench::ComputeService | |
static constexpr unsigned long | ALL_CORES = ULONG_MAX |
A convenient constant to mean "use all cores of a physical host" whenever a number of cores is needed when instantiating compute services. | |
static constexpr double | ALL_RAM = DBL_MAX |
A convenient constant to mean "use all ram of a physical host" whenever a ram capacity is needed when instantiating compute services. | |
static StorageService * | SCRATCH = (StorageService *) ULONG_MAX |
A convenient constant to mean "the scratch storage space" of a ComputeService. This is used to move data to a ComputeService's scratch storage space. | |
Protected Attributes inherited from wrench::CloudService | |
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. | |
Detailed Description
A virtualized cluster-based compute service.
Constructor & Destructor Documentation
◆ VirtualizedClusterService()
wrench::VirtualizedClusterService::VirtualizedClusterService | ( | 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.
- Parameters
-
hostname the name of the hostcreate on which to start the service execution_hosts the hosts available for running virtual machines scratch_space_size the size for the scratch space of the cloud service property_list a property list ({} means "use all defaults") messagepayload_list a message payload list ({} means "use all defaults")
- Exceptions
-
std::runtime_error
Member Function Documentation
◆ createVM()
|
virtual |
Create a BareMetalComputeService VM on a physical machine.
- Parameters
-
pm_hostname the name of the physical machine host num_cores the number of cores the service can use (use ComputeService::ALL_CORES to use all cores available on the host) ram_memory the VM's RAM memory capacity (use ComputeService::ALL_RAM to use all RAM available on the host, this can be lead to an out of memory issue) property_list a property list ({} means "use all defaults") messagepayload_list a message payload list ({} means "use all defaults")
- Returns
- Virtual machine name
- Exceptions
-
WorkflowExecutionException
◆ migrateVM()
|
virtual |
Synchronously migrate a VM to another physical host.
- Parameters
-
vm_hostname virtual machine hostname dest_pm_hostname the name of the destination physical machine host
- Returns
- Whether the VM was successfully migrated
The documentation for this class was generated from the following files:
- /Users/rafsilva/Documents/isi/workspace/wrench/wrench/include/wrench/services/compute/virtualized_cluster/VirtualizedClusterService.h
- /Users/rafsilva/Documents/isi/workspace/wrench/wrench/src/wrench/services/compute/virtualized_cluster/VirtualizedClusterService.cpp