Overview
HTCondor is a workload management framework that supervises task executions on various sets of resources. HTCondor is composed of six main service daemons (startd
, starter
, schedd
, shadow
, negotiator
, and collector
). In addition, each host on which one or more of these daemons is spawned must also run a master
daemon, which controls the execution of all other daemons (including initialization and completion).
Creating an HTCondor Service
HTCondor is composed of a pool of resources in which jobs are submitted to perform their computation. In WRENCH, an HTCondor service represents a compute service (wrench::ComputeService
), which is defined by the wrench::HTCondorComputeService
class. An instantiation of an HTCondor service requires the following parameters:
- The name of a host on which to start the service;
- A
std::set
of 'child'wrench::ComputeService
instances available to the HTCondor pool; and - A
std::map
of properties (wrench::HTCondorComputeServiceProperty
) and message payloads (wrench::HTCondorComputeServiceMessagePayload
).
The set of compute services may include compute service instances that are either wrench::BareMetalComputeService
or wrench::BatchComputeService
instances. The example below creates an instance of an HTCondor service with a pool of resources containing a Bare-metal server:
Jobs submitted to the wrench::HTCondorComputeService
instance will be dispatched automatically to one of the 'child' compute services available to that instance (only one in the above example).