X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f04fa5306f52960db709bb520c49e9f4ecec000..0bffda160473d5f1b8e02097624671c40465ee0b:/src/smpi/smpirun.in diff --git a/src/smpi/smpirun.in b/src/smpi/smpirun.in index a5f406fadb..26f9b88255 100755 --- a/src/smpi/smpirun.in +++ b/src/smpi/smpirun.in @@ -174,7 +174,7 @@ while [ $# -gt 0 ]; do shift 1 ;; *) - PROC_ARGS="$PROC_ARGS $1" + PROC_ARGS="${PROC_ARGS:+$PROC_ARGS }$1" shift ;; esac @@ -190,12 +190,19 @@ if [ -z "${EXEC}" ] ; then 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 +HOSTFILETMP=0 +if [ -z "${HOSTFILE}" ] ; then + HOSTFILETMP=1 + HOSTFILE="$(mktemp tmphostXXXXXX)" + perl -ne 'print "$1\n" if /.*.*/' ${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` @@ -264,7 +271,7 @@ if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then fi if [ "${EXTOPT}" = "smpi_replay" ]; then - APP_TRACES=$1; + APP_TRACES=$PROC_ARGS if [ -n "${APP_TRACES}" ] && [ -f "${APP_TRACES}" ]; then hosttraces=(`cat ${APP_TRACES} | tr \\\n " "`) NUMTRACES=`cat ${APP_TRACES} | wc -l` @@ -364,6 +371,9 @@ fi 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=$? @@ -372,6 +382,9 @@ if [ -z "${KEEP}" ] ; then if [ -z "${PLATFORM}" ]; then rm ${PLATFORMTMP} fi + if [ ${HOSTFILETMP} = 1 ] ; then + rm ${HOSTFILE} + fi rm ${APPLICATIONTMP} fi