Carie, I don't actually get how you implemented the hack : did you reduplicate the


class DRMAAJobRunner


under a different name in drmaa.py? And where do you define every next cluster (controller machines)?


Can you give me some more detalis?


Thank you


Nikolay


Hi Nikolay,

I didn't duplicate anything or try anything too fancy. In drmaa.py, in the init function, I changed the way self.ds.initialize was called:
        # Check the PID of the handler that I want to handle a specific cluster
        with open('/path/to/handlercluster2.pid', 'r') as f:                                                                    
            firstline = f.readline()                                                                                                                                
# Check my PID to see if I'm that handler:
        if int(firstline) == os.getpid(): 
    #If so, initialize using a specific cluster - this is the address to where the scheduler is running                                                                                                                           
            self.ds.initialize("cluster2.iu.edu")                                                                                                            
        else: 
    # Otherwise use default server                                                                                                                                                      
            self.ds.initialize()

I'm sure there are cleaner ways to do it, but this was a solution we used before PBS supported destinations.
-Carrie






===============
Nikolay Vazov, PhD
Department for Research Computing, University of Oslo

From: Nate Coraor <nate@bx.psu.edu>
Sent: 01 February 2016 17:28
To: Ganote, Carrie L
Cc: John Chilton; Nikolay Aleksandrov Vazov; dannon.baker@gmail.com; galaxy-dev@lists.galaxyproject.org
Subject: Re: Galaxy sending jobs to multiple clusters
 
Hi Nikolay,

It's worth noting that using `--clusters` means you have to have your controllers integrated using slurmdbd, and they must share munge keys. You can set up separate destinations as in Carrie's example without having to "integrate" your controllers at the slurm level. The downside of this approach is that you can't have slurm automatically "balance" across clusters, although Slurm's algorithm for doing this with `--clusters` is fairly primitive. If you don't use `--clusters` you can attempt to do the balancing with a dynamic job destination.

If you're not using slurmdbd, you may still need to share the same munge key across clusters to allow the slurm client lib on the Galaxy server to talk to both clusters. There could be ways around this if it's a problem, though.

--nate

On Mon, Feb 1, 2016 at 11:10 AM, Ganote, Carrie L <cganote@iu.edu> wrote:
Hi Nikolay,
The slurm branch that John mentioned sounds great! That might be your best bet.
I didn't get drmaa to run with multiple clusters with flags, but I did 'assign' different job handlers to different destinations in the drmaa.py runner in Galaxy - but that is a bit of a hacky way to do it.

-Carrie

From: John Chilton <jmchilton@gmail.com>
Date: Monday, February 1, 2016 at 11:02 AM
To: Nikolay Aleksandrov Vazov <n.a.vazov@usit.uio.no>
Cc: "dannon.baker@gmail.com" <dannon.baker@gmail.com>, "galaxy-dev@lists.galaxyproject.org" <galaxy-dev@lists.galaxyproject.org>, Carrie Ganote <cganote@iu.edu>, Nate Coraor <nate@bx.psu.edu>
Subject: Re: Galaxy sending jobs to multiple clusters

Nate has a branch of slurm drmaa that allows specifying a --clusters
argument in the native specification this can be used to target
multiple hosts.

More information can be found here:


Here is how Nate uses it to configure usegalaxy.org:


I guess instead of installing slurm-drmaa for a package manager or the
default source - you will just need to install Nate's version.

-John



On Wed, Jan 20, 2016 at 1:18 PM, Nikolay Aleksandrov Vazov
Hi, John, Dan, Carrie and all others,


I am considering a task of setting up a Galaxy instance which shall send
jobs to more than on cluster at a time. In my case I am using drmaa-python
and I was wondering if it was possible to configure multiple drmaa runners
each "pointing" at a different (slurm) control host, e.g.


local

drmaa1

drmaa2


Thanks a lot for your advice


Nikolay




===============
Nikolay Vazov, PhD
Department for Research Computing, University of Oslo