HTCondor
Funnel can be configured to submit workers to HTCondor by making
calls to condor_submit
.
The Funnel server needs to run on a submission node. Configure Funnel to use HTCondor by including the following config:
It is recommended to update the submit file template so that the
funnel worker run
command takes a config file as an argument
(e.g. funnel worker run --config /opt/funnel_config.yml --taskID {{.TaskId}}
)
Compute: htcondor
HTCondor:
Template: |universe = vanilla
getenv = True
executable = funnel
arguments = worker run --taskID {{.TaskId}}
log = {{.WorkDir}}/condor-event-log
error = {{.WorkDir}}/funnel-stderr
output = {{.WorkDir}}/funnel-stdout
should_transfer_files = YES
when_to_transfer_output = ON_EXIT_OR_EVICT
{{if ne .Cpus 0 -}}
{{printf "request_cpus = %d" .Cpus}}
{{- end}}
{{if ne .RamGb 0.0 -}}
{{printf "request_memory = %.0f GB" .RamGb}}
{{- end}}
{{if ne .DiskGb 0.0 -}}
{{printf "request_disk = %.0f GB" .DiskGb}}
{{- end}}
queue
The following variables are available for use in the template:
Variable | Description |
---|---|
TaskId | funnel task id |
WorkDir | funnel working directory |
Cpus | requested cpu cores |
RamGb | requested ram |
DiskGb | requested free disk space |
Zone | requested zone (could be used for queue name) |
See https://golang.org/pkg/text/template for information on creating templates.