10 #ifndef SIMULATION_COMPUTESERVICE_H
11 #define SIMULATION_COMPUTESERVICE_H
19 #include "wrench/services/Service.h"
20 #include "wrench/workflow/job/WorkflowJob.h"
41 friend class StandardJobExecutorTest;
54 static constexpr
unsigned long ALL_CORES = ULONG_MAX;
59 static constexpr
double ALL_RAM = DBL_MAX;
117 submitStandardJob(StandardJob *job, std::map<std::string, std::string> &service_specific_arguments) = 0;
125 virtual void submitPilotJob(PilotJob *job, std::map<std::string, std::string> &service_specific_arguments) = 0;
131 virtual void terminateStandardJob(StandardJob *job) = 0;
137 virtual void terminatePilotJob(PilotJob *job) = 0;
143 std::shared_ptr<StorageService> getScratch();
146 ComputeService(
const std::string &hostname,
147 std::string service_name,
148 std::string mailbox_name_prefix,
149 std::string scratch_space_mount_point);
153 ComputeService(
const std::string &hostname,
154 std::string service_name,
155 std::string mailbox_name_prefix,
156 std::shared_ptr<StorageService> scratch_space);
159 std::shared_ptr<StorageService> scratch_space_storage_service;
177 std::shared_ptr<StorageService> scratch_space_storage_service_shared_ptr;
179 std::map<std::string, std::map<std::string, double>> getServiceResourceInformation();
186 #endif //SIMULATION_COMPUTESERVICE_H
double getTotalScratchSpaceSize()
Get the total capacity of the compute service's scratch storage space.
Definition: ComputeService.cpp:450
std::map< std::string, double > getPerHostAvailableMemoryCapacity()
Get ram availability for each of the compute service's host.
Definition: ComputeService.cpp:290
bool hasScratch()
Checks if the compute service has a scratch space.
Definition: ComputeService.cpp:484
std::map< std::string, unsigned long > getPerHostNumIdleCores()
Get idle core counts for each of the compute service's host.
Definition: ComputeService.cpp:263
double getTTL()
Get the time-to-live of the compute service.
Definition: ComputeService.cpp:393
virtual unsigned long getTotalNumIdleCores()
Get the total idle core count for all hosts of the compute service.
Definition: ComputeService.cpp:317
std::map< std::string, double > getCoreFlopRate()
Get the per-core flop rate of the compute service's hosts.
Definition: ComputeService.cpp:342
void submitJob(WorkflowJob *job, std::map< std::string, std::string >={})
Submit a job to the compute service.
Definition: ComputeService.cpp:56
The compute service base class.
Definition: ComputeService.h:35
std::map< std::string, unsigned long > getPerHostNumCores()
Get core counts for each of the compute service's host.
Definition: ComputeService.cpp:210
double getFreeScratchSpaceSize()
Get the free space on the compute service's scratch storage space.
Definition: ComputeService.cpp:459
Abstraction of a job used for executing tasks in a Workflow.
Definition: WorkflowJob.h:34
std::shared_ptr< StorageService > getScratchSharedPtr()
Get a shared pointer to the compute service's scratch storage space.
Definition: ComputeService.cpp:476
void stop() override
Stop the compute service - must be called by the stop() method of derived classes.
Definition: ComputeService.cpp:33
unsigned long getTotalNumCores()
Get the total core counts for all hosts of the compute service.
Definition: ComputeService.cpp:237
static constexpr unsigned long ALL_CORES
A convenient constant to mean "use all cores of a physical host" whenever a number of cores is needed...
Definition: ComputeService.h:54
A class that provides basic simulation methods. Once the simulation object has been explicitly or imp...
Definition: Simulation.h:45
bool supportsStandardJobs()
Get whether the compute service supports standard jobs or not.
Definition: ComputeService.cpp:167
static constexpr double ALL_RAM
A convenient constant to mean "use all ram of a physical host" whenever a ram capacity is needed when...
Definition: ComputeService.h:59
A service that can be added to the simulation and that can be used by a WMS when executing a workflow...
Definition: Service.h:26
unsigned long getNumHosts()
Get the number of hosts that the compute service manages.
Definition: ComputeService.cpp:186
void terminateJob(WorkflowJob *job)
Terminate a previously-submitted job (which may or may not be running yet)
Definition: ComputeService.cpp:89
std::map< std::string, double > getMemoryCapacity()
Get the RAM capacities for each of the compute service's hosts.
Definition: ComputeService.cpp:367
bool supportsPilotJobs()
Get whether the compute service supports pilot jobs or not.
Definition: ComputeService.cpp:175