I am trying to set up galaxy tools either single or multithreaded on a 24 core machine.
So what I would like to achieve is to have a maximum of 20 single core workers running and if a multi threaded job is started of lets say 6 cores then I can have a maximum of 20-6 = 14 single core runners and 1 multi core runner.
However I am having a very hard time to get this working and am probably missing something.
My multi threaded tool command looks like:
<command interpreter="python3.4">multhread.py '-input' '$input' '--seqtype' '$seqtype' '-f' 'TSV' '--applications' '$appl' '-output' '$outfile' -sourcedb XYZ '-num_threads' \${GALAXY_SLOTS:-6} </command>
My job_conf.xml file looks like this:
<job_conf> <plugins> <plugin id="local" type="runner" load="galaxy.jobs.runners.local:LocalJobRunner" workers="20"/> </plugins> <handlers> <handler id="main"/> </handlers> <destinations default="single"> <destination id="single" runner="local"> <param id="local_slots">20</param> </destination> </destinations> </job_conf>
I digged a bit in the code and noticed:
slots_statement = 'GALAXY_SLOTS="%d"; export GALAXY_SLOTS; GALAXY_SLOTS_CONFIGURED="1"; export GALAXY_SLOTS_CONFIGURED;' % ( int( slots ) )
Which is set to one as 1 runner is running, but shouldnt it in theory not be set to 6 as it consumes 6 slots cores?