# TORQUE as a backend for Cromwell on Computerome

# Here is where you can define the backend providers that Cromwell understands.
# The default is a local provider.
# To add additional backend providers, you should copy paste additional backends
# of interest that you can find in the cromwell.example.backends folder
# folder at https://www.github.com/broadinstitute/cromwell
# Other backend providers include SGE, SLURM, Docker, udocker, Singularity. etc.
# Don't forget you will need to customize them for your particular use case.

backend {

    # Override the default backend.
    default = TORQUE

    # The list of providers.
    providers {

        TORQUE {

            # The actor that runs the backend.
            actor-factory = "cromwell.backend.impl.sfs.config.ConfigBackendLifecycleActorFactory"

            # The backend custom configuration.
            config {

                # Number of concurrent jobs allowed
                concurrent-job-limit = 500

                # The list of possible runtime custom attributes.
                runtime-attributes = """
                String walltime = "1:00:00"
                Int cpu = 1
                Float memory_mb = 2048.0
                String queue = "cge"
                """

                submit = "qsub -W group_list=${queue} -A ${queue} -N ${job_name} -lwalltime=${walltime},nodes=1:ppn=${cpu},mem=${ceil(memory_mb)}mb -d ${cwd} -o ${out} -e ${err} ${script}"

                kill = "qdel ${job_id}"
                check-alive = "qstat ${job_id}"
                job-id-regex = "(\\d+)"
            }

        }

    }

}
