wrench::HTCondorComputeService

class wrench::HTCondorComputeService : public wrench::ComputeService

A workload management framework compute service.

Public Functions

HTCondorComputeService(const std::string &hostname, std::set<std::shared_ptr<ComputeService>> compute_services, WRENCH_PROPERTY_COLLECTION_TYPE property_list = {}, WRENCH_MESSAGE_PAYLOADCOLLECTION_TYPE messagepayload_list = {})

Constructor.

Parameters
  • hostname – the name of the host on which to start the service

  • compute_services – a set of ‘child’ compute services that have been added to the simulation and that are available to and usable through the HTCondor pool.

    • BatchComputeService instances will be used for Condor jobs in the “grid” universe

    • BareMetalComputeService instances will be used for Condor jobs not in the “grid” universe

    • other types of compute services are disallowed

  • property_list – a property list ({} means “use all defaults”)

  • messagepayload_list – a message payload list ({} means “use all defaults”)

Throws

std::runtime_error

~HTCondorComputeService() override

Destructor.

void addComputeService(std::shared_ptr<ComputeService> compute_service)

Add a new ‘child’ compute service.

Parameters

compute_service – the compute service to add

std::shared_ptr<StorageService> getLocalStorageService() const

Get the service’s local storage service.

Returns

the local storage service object

void setLocalStorageService(std::shared_ptr<StorageService> local_storage_service)

Set the service’s local storage service.

Parameters

local_storage_service – a storage service

virtual void submitCompoundJob(std::shared_ptr<CompoundJob> job, const std::map<std::string, std::string> &service_specific_arguments) override

Submit a compound job to the HTCondor service.

Parameters
  • job – a compound job

  • service_specific_args – service specific arguments

Throws
virtual bool supportsCompoundJobs() override

Returns true if the service supports compound jobs.

Returns

true or false

virtual bool supportsPilotJobs() override

Returns true if the service supports pilot jobs.

Returns

true or false

virtual bool supportsStandardJobs() override

Returns true if the service supports standard jobs.

Returns

true or false

inline virtual void terminateCompoundJob(std::shared_ptr<CompoundJob> job) override

Method to terminate a compound job.

Parameters

job – the standard job

virtual void validateJobsUseOfScratch(std::map<std::string, std::string> &service_specific_args) override

Determine whether compute service has scratch.

Parameters

service_specific_args – the service-specific arguments (useful for some services)

virtual void validateServiceSpecificArguments(std::shared_ptr<CompoundJob> compound_job, std::map<std::string, std::string> &service_specific_args) override

Method the validates service-specific arguments (throws std::invalid_argument if invalid)

Parameters
  • job – the job that’s being submitted

  • service_specific_args – the service-specific arguments