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:

VariableDescription
TaskIdfunnel task id
WorkDirfunnel working directory
Cpusrequested cpu cores
RamGbrequested ram
DiskGbrequested free disk space
Zonerequested zone (could be used for queue name)

See https://golang.org/pkg/text/template for information on creating templates.