[Beowulf] Gridengine and bash + Modules
Brian Smith
brs at usf.edu
Mon Jan 18 13:15:10 PST 2010
On Mon, 2010-01-18 at 19:53 +0000, madskaddie at gmail.com wrote:
> 2010/1/18 Brian Smith <brs at usf.edu>:
> > Ah, the RedHat-isms that we take for granted... hah! I forgot that the
> > default ~/.bashrc I push out to everyone sources /etc/bashrc by default.
> > What distro are you using?
> >
>
> Debian lenny
>
> > There's also this bit of goodness from the man page:
> >
> > "Bash attempts to determine when it is being run with its standard input
> > connected to a a network connection, as if by the remote shell daemon,
> > usually rshd, or the secure shell daemon sshd.
> >
>
> The Debian bash man page doesn't say the word "sshd" (only "rshd"),
> and I'm using ssh as the remote shell, so it may be the case (weird,
> but possible).
>
> (...)
>
> >
> > I wonder if sge_shepherd doesn't, in fact, trick shells into behaving
> > this way... I know I'm not using BASH_ENV and my modules environment
> > works correctly.
> >
>
> Just to be sure we aren't missing something: you can load a module
> inside the submit job, correct?
>
> Case 1:
>
> - module load something
> - qsub job.sh
> - cat job.sh
> #!/bin/bash
> #(sge config stuff)
>
> mpirun ...
>
> #EOF
(Unless you are doing qsub -V)
This should be
- module initadd something
- qsub job.sh
...
Remember, you need a "module load null" line in ~/.bashrc or, in my
case, ~/.modules. This makes sure the module is loaded when bash
starts.
> Case 2 (what I pretend):
> - qsub job.sh
> - cat job.sh
> #!/bin/bash
> #(sge config stuff)
>
> module add something
> mpirun ...
>
> #EOF
>
>
>
>
> >
> > -Brian
> >
> > --
> > Brian Smith
> > Senior Systems Administrator
> > IT Research Computing, University of South Florida
> > 4202 E. Fowler Ave. ENB308
> > Office Phone: +1 813 974-1467
> > Organization URL: http://rc.usf.edu
> >
> >
> > On Mon, 2010-01-18 at 14:38 +0000, madskaddie at gmail.com wrote:
> >> 2010/1/16 Brian Smith <brs at usf.edu>:
> >> > I'm using this in our environment. I've simply added the Modules
> >> > environment code to /etc/bashrc and /etc/csh.cshrc on all nodes (I use
> >> > puppet to manage everything, so this is easy). This ensures that
> >> > Modules is properly integrated with your environment regardless of
> >> > whether you are using an interactive or non-interactive invocation of
> >> > these shells. This works for SGE (I'm on 6.2u4, ATM)
> >> >
> >>
> >> But it seems that gridengine spawns like "bash script_name" so no rc
> >> files are read. Reading bash manpage, I found the BASH_ENV environment
> >> variable:
> >>
> >> """
> >> When bash is started non-interactively, to run a shell script, for
> >> example, it looks for the variable BASH_ENV in the environment,
> >> expands its value if it appears there, and uses the expanded value as
> >> the name of a file to read and execute. Bash behaves as if the
> >> following command were executed:
> >> if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
> >> but the value of the PATH variable is not used to search for the file name.
> >> """
> >> (bash manpage)
> >>
> >> Right now I'm setting this variable and with the "-V" job submission
> >> flag it's working well (it does not work correctly without it)
> >>
> >> Gil
> >>
> >>
> >
> >
>
>
>
More information about the Beowulf
mailing list