Skip to content

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.