1
1

* push out all env variables starting with LAM_MPI or mca_

VERY IMPORTANT NOTE: neither name or value can have a space in it.  Sorry,
  but I'm sick of escape hell.

This commit was SVN r664.
Этот коммит содержится в:
Brian Barrett 2004-02-08 03:41:56 +00:00
родитель 4c9d393a0e
Коммит b55147c2e4
2 изменённых файлов: 55 добавлений и 6 удалений

Просмотреть файл

@ -28,6 +28,7 @@ lam_commdir=""
# #
###################################################################### ######################################################################
args_err=1 args_err=1
for i ; do for i ; do
case "${i}" in case "${i}" in
-test) -test)
@ -53,6 +54,14 @@ for i ; do
lam_commdir="${1}" lam_commdir="${1}"
shift shift
;; ;;
-x)
shift
name="${1}"
shift
val="${1}"
shift
export "${name}"="${val}"
;;
-pwd) -pwd)
shift shift
cd "${1}" cd "${1}"

Просмотреть файл

@ -30,6 +30,7 @@ lam_jobhandle=""
lam_app_args="" lam_app_args=""
lam_mydir="" lam_mydir=""
lam_cwd="`pwd`" lam_cwd="`pwd`"
lam_prepped=""
# Get the dir where this script is # Get the dir where this script is
dir="`dirname $0`" dir="`dirname $0`"
@ -96,6 +97,41 @@ debug_echo() {
fi fi
} }
######################################################################
#
# prep_environ
#
# make environment push happen
#
######################################################################
do_add_env() {
str="$*"
name="`echo ${str} | cut -d= -f1`"
val="`echo ${str} | cut -d= -f2-`"
lam_prepped="${lam_prepped} -x ${name} \"${val}\""
}
do_prep_environ() {
local a=""
local envfile="/tmp/lam_mpirun_env_$$"
rm -f "${envfile}"
printenv > "${envfile}"
while IFS= read envpair
do
if test "`echo ${envpair} | grep \"^mca_\"`" != "" ; then
do_add_env "${envpair}"
elif test "`echo ${envpair} | grep \"^LAM_MPI\"`" != "" ; then
do_add_env "${envpair}"
fi
done < "${envfile}"
rm -f "${envfile}"
}
###################################################################### ######################################################################
# #
@ -110,24 +146,24 @@ debug_echo() {
# argv argv to start # argv argv to start
# #
###################################################################### ######################################################################
start_proc() { do_start_proc() {
local rmt_hostname=$1 ; shift local rmt_hostname=$1 ; shift
local rmt_vpid=$1 ; shift local rmt_vpid=$1 ; shift
local argv="$*" local argv="$*"
local rmt_boot="${lam_mydir}/mpiboot" local rmt_boot="${lam_mydir}/mpiboot"
local cmd=""
local cmd="ssh ${rmt_hostname} -f -n ${rmt_boot} -myvpid ${rmt_vpid}" cmd="ssh ${rmt_hostname} -f -n ${rmt_boot} "
cmd="${cmd} -myvpid ${rmt_vpid}"
cmd="${cmd} -numprocs ${lam_numprocs} -jobhandle ${lam_jobhandle}" cmd="${cmd} -numprocs ${lam_numprocs} -jobhandle ${lam_jobhandle}"
cmd="${cmd} -pwd ${lam_cwd}" cmd="${cmd} -pwd ${lam_cwd} ${lam_prepped}"
if test ! -z "${MCA_common_lam_cofs_comm_dir}" ; then if test ! -z "${MCA_common_lam_cofs_comm_dir}" ; then
cmd="${cmd} -commdir ${MCA_common_lam_cofs_comm_dir}" cmd="${cmd} -commdir ${MCA_common_lam_cofs_comm_dir}"
fi fi
cmd="${cmd} -- ${argv}" cmd="${cmd} -- ${argv}"
debug_echo "* ${cmd}"
${cmd} ${cmd}
} }
###################################################################### ######################################################################
# #
# make_hosts_list # make_hosts_list
@ -178,8 +214,10 @@ launch_procs() {
exit 1 exit 1
fi fi
do_prep_environ
for (( i=0 ; i < ${lam_numprocs} ; i++)) ; do for (( i=0 ; i < ${lam_numprocs} ; i++)) ; do
start_proc "${1}" "${i}" "${args}" do_start_proc "${1}" "${i}" "${args}"
shift shift
if test -z "${1}" ; then if test -z "${1}" ; then
set -- ${lam_hosts} set -- ${lam_hosts}
@ -201,7 +239,9 @@ lam_jobhandle="pcm-cofs-job-handle-${$}-0"
# exit cleanly # exit cleanly
# #
###################################################################### ######################################################################
make_hosts_list make_hosts_list
launch_procs "${lam_app_args}" launch_procs "${lam_app_args}"
echo "" echo ""