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)
Users can then do the following: 1. Include 'module add' directives in their job scripts for application execution (preferred method) 2. Use persistent module add directives w/ 'module initadd' to ensure their jobs have the correct environment settings (good for interactive jobs via qrsh, but this is better solved in other ways). Here's what I added: ## for bash if [ -d "/opt/admin/Modules" ]; then MODULE_VERSION=3.2.6 MODULE_ROOT=/opt/admin/Modules/$MODULE_VERSION case "$0" in -sh|sh|*/sh) modules_shell=sh ;; -ksh|ksh|*/ksh) modules_shell=ksh ;; -zsh|zsh|*/zsh) modules_shell=zsh ;; -bash|bash|*/bash) modules_shell=bash ;; *) modules_shell=bash ;; esac MODULEPATH=$MODULE_ROOT/modulefiles:$HOME/.modulefiles export WORK SCRATCH MODULEPATH MODULE_ROOT MODULE_VERSION module() { eval `$MODULE_ROOT/bin/modulecmd $modules_shell $*`; } if [ -f $HOME/.modules ]; then eval `egrep '^module(.*load|.*add).*$' $HOME/.modules | head -1` fi fi ## For cshell if ( -d /opt/admin/Modules ) then setenv MODULESHOME /opt/admin/Modules/${MODULE_VERSION} if (! $?MODULEPATH ) then setenv MODULEPATH `sed 's/#.*$//' ${MODULESHOME}/init/.modulespath | awk 'NF==1{printf("%s:",$1)}'` endif if (! $?LOADEDMODULES ) then setenv LOADEDMODULES "" endif if ( -f $HOME/.modules ) then eval `egrep '^module(.*add|.*load).*$' $HOME/.modules | head -1` endif endif -- 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 Sat, 2010-01-16 at 10:44 +0000, madskad...@gmail.com wrote: > Greetings, > > I'm using gridengine (6.2u4, open source ver.) and I would like to use > the Modules software. Modules uses a shell function that must be > exported (bash: "export -f func_name" in order to set environment > variables), but gridengine has a bug related with bash exported > functions[1]. > > Is anybody using gridengine, bash and modules? How to solve this? > Changing shell is not an option ;) > > This issue is also being discussed here[2]. > > Thanks, > > Gil > > [1] - http://gridengine.sunsource.net/issues/show_bug.cgi?id=2173 > [2] - > http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&viewType=browseAll&dsMessageId=238562#messagefocus > _______________________________________________ Beowulf mailing list, Beowulf@beowulf.org sponsored by Penguin Computing To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf