Question: Using Sge Cluster
0
gravatar for Henrikki Almusa
10.1 years ago by
Henrikki Almusa • 110 wrote:
Hi, I'm trying to get SGE cluster to run some tools on galaxy. I've set the 'start_job_runners = sge' and 'default_cluster_job_runner = local:///'. I'm hoping that this setup would run tools locally, unless tool is set to run on cluster in '[galaxy:tool_runners]' section. However this seems to fail with following message: Exception: SGEJobRunner requires DRMAA_python which was not found The DRMAA python package however is installed as is libdrmaa.so.1.0. And importing the DRMAA package works in python command prompt. How should I proceed with this? Regards, -- Henrikki Almusa
galaxy • 1.7k views
ADD COMMENT • link • modified 10.1 years ago by Nate Coraor ♦ 3.2k • written 10.1 years ago by Henrikki Almusa • 110
0
gravatar for Nate Coraor
10.1 years ago by
Nate Coraor ♦ 3.2k
United States
Nate Coraor ♦ 3.2k wrote:
Hi Henrikki, Galaxy expects to find DRMAA_python as an egg. To avoid version conflicts, Galaxy scrubs all non-standard Python paths from its environment (except when running tools). Thankfully, this should be easy to do, from Galaxy's root directory: SGE_ROOT=/path/to/sge python scripts/scramble.py DRMAA_python I'll update the wiki with this information shortly. --nate
ADD COMMENT • link written 10.1 years ago by Nate Coraor ♦ 3.2k
That worked, thanks. I decided to try the cluster on emboss tool 'dreg'. Just to see that I can get it to execute there. However it seems to be using the local runner for it. I have commented out the default_cluster_job_runner row from above and that didn't help. I have following line after the [galaxy:tool_runners] EMBOSS: dreg27 = sge:// Shouldn't there be the tool id as whole or does the parsing fail due to spaces? Regards, -- Henrikki Almusa
ADD REPLY • link written 10.1 years ago by Henrikki Almusa • 110
Ok, I changed the tool id to EMBdreg27 and now it tried to send it to cluster. But alas that didn't go very far as error was thrown and I got this in the logs. galaxy.jobs.schedulingpolicy.roundrobin DEBUG 2008-10-30 11:32:00,271 RoundRobin queue: user/session did not exist, created new jobqueue for session = 1 galaxy.jobs DEBUG 2008-10-30 11:32:00,271 job 11 put in policy queue galaxy.jobs.schedulingpolicy.roundrobin DEBUG 2008-10-30 11:32:00,272 RoundRobin queue: retrieving job from job queue for session = 1 galaxy.jobs DEBUG 2008-10-30 11:32:00,272 dispatching job 11 to sge runner galaxy.jobs ERROR 2008-10-30 11:32:00,877 failure running job 11 Traceback (most recent call last): File "/apps/general/galaxy/galaxy- d93cf9d961bb/lib/galaxy/jobs/__init__.py", line 190, in monitor_step self.dispatcher.put( sjob ) File "/apps/general/galaxy/galaxy- d93cf9d961bb/lib/galaxy/jobs/__init__.py", line 499, in put self.job_runners[runner_name].put( job_wrapper ) File "/apps/general/galaxy/galaxy- d93cf9d961bb/lib/galaxy/jobs/runners/sge.py", line 279, in put self.queue_job( job_wrapper ) File "/apps/general/galaxy/galaxy- d93cf9d961bb/lib/galaxy/jobs/runners/sge.py", line 127, in queue_job sge_queue_name = self.determine_sge_queue( runner_url ) File "/apps/general/galaxy/galaxy- d93cf9d961bb/lib/galaxy/jobs/runners/sge.py", line 98, in determine_sge_queue queue = url_split[3] IndexError: list index out of range Regards, -- Henrikki Almusa
ADD REPLY • link written 10.1 years ago by Henrikki Almusa • 110
The URL is missing a / - there's an optional 'queue' parameter: sge://[cell]/[queue] To use the default queue on the default cell, use: sge:/// --nate
ADD REPLY • link written 10.1 years ago by Nate Coraor ♦ 3.2k
Thanks, that worked. Now I still have one more question :). Is there any way to add enviromental variables to the command that the galaxy executes in the SGE cluster? I managed to do it by editing the script template in lib/galaxy/jobs/runners/sge.py However that would be a bit of a hack. Regards, -- Henrikki Almusa
ADD REPLY • link written 10.1 years ago by Henrikki Almusa • 110
The way we do it is to add them to the user's shell startup files. --nate
ADD REPLY • link written 10.1 years ago by Nate Coraor ♦ 3.2k
I tried adding to .bashrc (/bin/sh points to /bin/bash), but it doesn't seem to be loaded when the script is run. -- Henrikki Almusa
ADD REPLY • link written 10.1 years ago by Henrikki Almusa • 110
I can't speak for how your local cluster is configured, but you may need to use .bash_profile. Also, SGE defaults to using csh to run jobs. You may want to do some testing using qsub manually to see what works. --nate
ADD REPLY • link written 10.1 years ago by Nate Coraor ♦ 3.2k
Please log in to add an answer.

Help
Access

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