Question: Docker Galaxy Job conf file and SLURM
gravatar for machinelearner
17 months ago by
machinelearner10 wrote:

Hi everyone,

Is it possible to run multiple thread processes on Docker Galaxy via SLURM? According to SLURM documentation, using the --cpus-per-task flag allows for multiple CPUs to run. However, running this on Galaxy results in the following error:

Unable to run job due to a misconfiguration of the Galaxy job running system. Please contact a site administrator

This flag seems to work via command line, so it does not seem to be an issue with the container installation of SLURM. Is there a special flag or parameter option that has to be used? Currently, the relevant portion of the job conf file looks like this (most of it was from the sample file):

 <destinations default_from_environ="GALAXY_DESTINATIONS_DEFAULT" default="slurm_cluster">
            <destination id="slurm_cluster" runner="slurm">
            <param id="nativeSpecification" from_environ="NATIVE_SPEC">--cpus-per-task=2 --share</param>
            <env file="/galaxy_venv/bin/activate"/>
                    <param id="docker_enabled" from_environ="GALAXY_DOCKER_ENABLED">False</param>
        <param id="docker_sudo" from_environ="GALAXY_DOCKER_SUDO">False</param>
        <!-- The empty volumes from shouldn't affect Galaxy, set GALAXY_DOCKER_VOLUMES_FROM to use. -->
        <param id="docker_volumes_from" from_environ="GALAXY_DOCKER_VOLUMES_FROM"></param>
        <!-- For a stock Galaxy instance and traditional job runner $defaults will expand out as: $galaxy_root:ro,$tool_directory:ro,$working_directory:rw,$default_file_path:rw -->
        <param id="docker_volumes" from_environ="GALAXY_DOCKER_VOLUMES">$defaults</param>

        <tool id="bowtie2"                      destination="slurm_cluster"/>

There was another post here ( which seems to address using multiple cpus using a request_cpus id, but that results in the same error as above.

Thanks in advance for the help!

slurm galaxy • 710 views
ADD COMMENTlink modified 17 months ago by Devon Ryan1.9k • written 17 months ago by machinelearner10
gravatar for Devon Ryan
17 months ago by
Devon Ryan1.9k
Devon Ryan1.9k wrote:

You'll want -n 2 in the native spec rather than --cpus-per-task=2, since that's not part of slurm-drmaa. The request_cpus part of answer that you linked to is just so Galaxy knows how many threads to tell the tool to use (since telling slurm won't suffice).

ADD COMMENTlink written 17 months ago by Devon Ryan1.9k

This worked! Thanks for the quick reply, I appreciate it!

ADD REPLYlink written 17 months ago by machinelearner10

Hi, can you share your job_conf file since I want to setup our docker-galaxy also to use more than 1 cpu? I see you have succeeded.

ADD REPLYlink written 12 months ago by vebaev130

Are you using the default slurm job runner or have you already changed something in job_conf.xml?

ADD REPLYlink written 11 months ago by Devon Ryan1.9k

I'm using Docker-Galaxy v17, and I'm using it without any change in the job_conf files right now. So probably any of the tools uses 1 CPU at the moment. I would like to make it so I can use more cores.

ADD REPLYlink modified 11 months ago • written 11 months ago by vebaev130

Add something like <param id="nativeSpecification">-n 4</param> to the <destination>. That'll make everything default to 4 cores.

ADD REPLYlink written 11 months ago by Devon Ryan1.9k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 169 users visited in the last hour