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
Henrikki Almusa wrote:
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?
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
Nate Coraor wrote:
Henrikki Almusa wrote:
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?
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.
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
Henrikki Almusa wrote:
Nate Coraor wrote:
Henrikki Almusa wrote:
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?
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.
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?
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
Henrikki Almusa wrote:
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.
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
Nate Coraor wrote:
Henrikki Almusa wrote:
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.
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:///
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
Henrikki Almusa wrote:
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.
The way we do it is to add them to the user's shell startup files. --nate
Nate Coraor wrote:
Henrikki Almusa wrote:
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.
The way we do it is to add them to the user's shell startup files.
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
Henrikki Almusa wrote:
I tried adding to .bashrc (/bin/sh points to /bin/bash), but it doesn't seem to be loaded when the script is run.
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
participants (2)
-
Henrikki Almusa
-
Nate Coraor