A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Auto generate hostfile if not given to smpirun [#14692]
[simgrid.git]
/
src
/
smpi
/
smpirun.in
diff --git
a/src/smpi/smpirun.in
b/src/smpi/smpirun.in
index
e290d20
..
c667617
100755
(executable)
--- a/
src/smpi/smpirun.in
+++ b/
src/smpi/smpirun.in
@@
-190,12
+190,18
@@
if [ -z "${EXEC}" ] ; then
exit 1
fi
exit 1
fi
-if [ -z "${HOSTFILE}" ] ; then
- echo "No hostfile specified."
+if [ -z "${HOSTFILE}" ]
&& [ -z "${PLATFORM}" ]
; then
+ echo "No hostfile
nor platform
specified."
usage
exit 1
fi
usage
exit 1
fi
+if [ -z "${HOSTFILE}" ] ; then
+ HOSTFILETMP=1
+ HOSTFILE="$(mktemp tmphostXXXXXX)"
+ perl -ne 'print "$1\n" if /.*<host.*?id="(.*?)".*?\/>.*/' ${PLATFORM} > ${HOSTFILE}
+fi
+
# Don't use wc -l to compute it to avoid issues with trailing \n at EOF
hostfile_procs=`grep -c "[a-zA-Z0-9]" $HOSTFILE`
# Don't use wc -l to compute it to avoid issues with trailing \n at EOF
hostfile_procs=`grep -c "[a-zA-Z0-9]" $HOSTFILE`
@@
-364,6
+370,9
@@
fi
export SMPI_GLOBAL_SIZE=${NUMPROCS}
if [ -n "${KEEP}" ] ; then
echo ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
export SMPI_GLOBAL_SIZE=${NUMPROCS}
if [ -n "${KEEP}" ] ; then
echo ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
+ if [ ${HOSTFILETMP} == 1 ] ; then
+ echo "Generated hostfile ${HOSTFILE} keeped."
+ fi
fi
${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
status=$?
fi
${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
status=$?
@@
-372,6
+381,9
@@
if [ -z "${KEEP}" ] ; then
if [ -z "${PLATFORM}" ]; then
rm ${PLATFORMTMP}
fi
if [ -z "${PLATFORM}" ]; then
rm ${PLATFORMTMP}
fi
+ if [ ${HOSTFILETMP} == 1 ] ; then
+ rm ${HOSTFILE}
+ fi
rm ${APPLICATIONTMP}
fi
rm ${APPLICATIONTMP}
fi