X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0142cb12530ada46ba40e6f906f5b09f77ccf5b5..a92d7b716f51a53dea7f59db8524d4add713b910:/examples/smpi/replay_multiple/generate_multiple_deployment.sh diff --git a/examples/smpi/replay_multiple/generate_multiple_deployment.sh b/examples/smpi/replay_multiple/generate_multiple_deployment.sh index 2818e9b130..134c852eb8 100755 --- a/examples/smpi/replay_multiple/generate_multiple_deployment.sh +++ b/examples/smpi/replay_multiple/generate_multiple_deployment.sh @@ -6,7 +6,6 @@ # This program is free software; you can redistribute it and/or modify it # under the terms of the license (GNU LGPL) which comes with this package. - #usage to print the way this script should be called usage () { cat <&2 + echo "["$(basename $0)"] ** error: the hostfile \'${HOSTFILE}\' is empty. Aborting." >&2 exit 1 fi - ##-------------------------------- DEFAULT APPLICATION -------------------------------------- APPLICATIONTMP=$(echo ${PROC_ARGS}|cut -d' ' -f2 -s) cat > ${APPLICATIONTMP} < - - + + APPLICATIONHEAD ##---- cache hostnames of hostfile--------------- if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then - hostnames=$(cat ${HOSTFILE} | tr '\n\r' ' ') - NUMHOSTS=$(cat ${HOSTFILE} | wc -l) + hostnames=$(tr '\n\r' ' ' < ${HOSTFILE}) + NUMHOSTS=$(wc -l < ${HOSTFILE}) fi +DESCRIPTIONFILE=$(echo $PROC_ARGS|cut -d' ' -f1) - DESCRIPTIONFILE=$(echo $PROC_ARGS|cut -d' ' -f1) - - if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then - NUMINSTANCES=$(cat ${DESCRIPTIONFILE} | wc -l) - replayinstances=$(cat ${DESCRIPTIONFILE}) - IFS_OLD=$IFS - IFS=$'\n' - set -f - NUMPROCS=0 - while IFS= read -r line; do - +if [ -n "${DESCRIPTIONFILE}" ] && [ -f "${DESCRIPTIONFILE}" ]; then + IFS_OLD=$IFS + IFS=$'\n' + set -f + NUMPROCS=0 + while IFS= read -r line; do # return IFS back if you need to split new line by spaces: IFS=$IFS_OLD IFS_OLD= @@ -152,15 +139,15 @@ fi if [ $NUMPROCSMINE != $(echo "$line"|cut -d' ' -f3) ]; then - echo "declared num of processes for instance $instance : ${array[2]} is not the same as the one in the replay files : $NUMPROCSMINE. Please check consistency of these information" + echo "declared num of processes for instance $instance : $(echo "$line"|cut -d' ' -f3) is not the same as the one in the replay files : $NUMPROCSMINE. Please check consistency of these information" exit 1 fi sleeptime=$(echo "$line"|cut -d' ' -f4) - HAVE_SEQ="`which seq 2>/dev/null`" + HAVE_SEQ=$(which seq 2>/dev/null) if [ -n "${HAVE_SEQ}" ]; then - SEQ1=`${HAVE_SEQ} 0 $((${NUMPROCSMINE}-1))` + SEQ1=$( ${HAVE_SEQ} 0 $((${NUMPROCSMINE}-1)) ) else cnt=0 while (( $cnt < ${NUMPROCSMINE} )) ; do @@ -170,8 +157,6 @@ fi fi #NUMPROCS=$((${NUMPROCS}+${NUMPROCSMINE})); for i in $SEQ1 - - ##---------------------------------------------------------- ## generate application.xml with hostnames from hostfile: ## the name of host_i (1<=i<=p, where -np p) is the line i @@ -179,55 +164,50 @@ fi ## hostfile has less than i lines. ##---------------------------------------------------------- -##---- generate tags------------------------------ - +##---- generate tags------------------------------ do - if [ -n "${HOSTFILE}" ]; then - j=$(( ${NUMPROCS} % ${NUMHOSTS} +1)) - fi - hostname=$(echo $hostnames|cut -d' ' -f$j) - if [ -z "${hostname}" ]; then - host="host"$($j) - else - host="${hostname}" - fi + if [ -n "${HOSTFILE}" ]; then + j=$(( ${NUMPROCS} % ${NUMHOSTS} +1)) + fi + hostname=$(echo $hostnames|cut -d' ' -f$j) + if [ -z "${hostname}" ]; then + host="host"$($j) + else + host="${hostname}" + fi - echo " " >> ${APPLICATIONTMP} - echo " " >> ${APPLICATIONTMP} - echo " " >> ${APPLICATIONTMP} - echo " " >> ${APPLICATIONTMP} - - echo " " >> ${APPLICATIONTMP} - echo " " >> ${APPLICATIONTMP} - NUMPROCS=$(( ${NUMPROCS} +1)) + echo " " >> ${APPLICATIONTMP} + echo " " >> ${APPLICATIONTMP} + echo " " >> ${APPLICATIONTMP} + echo " " >> ${APPLICATIONTMP} + + echo " " >> ${APPLICATIONTMP} + echo " " >> ${APPLICATIONTMP} + NUMPROCS=$(( ${NUMPROCS} +1)) done # return IFS back to newline for "for" loop IFS_OLD=$IFS IFS=$'\n' - done < ${DESCRIPTIONFILE} - - # return delimiter to previous value - IFS=$IFS_OLD - IFS_OLD= - else - printf "File not found: %s\n", "${APP_TRACES[0]:-\${APP_TRACES[0]\}}" >&2 - exit 1 - fi - + done < ${DESCRIPTIONFILE} + # return delimiter to previous value + IFS=$IFS_OLD + IFS_OLD= +else + printf "File not found: %s\n", ${DESCRIPTIONFILE} >&2 + exit 1 +fi cat >> ${APPLICATIONTMP} < APPLICATIONFOOT ##-------------------------------- end DEFAULT APPLICATION -------------------------------------- - - if [ ${HOSTFILETMP} = 1 ] ; then - rm ${HOSTFILE} - fi - if [ ${UNROLLEDHOSTFILETMP} = 1 ] ; then - rm ${UNROLLEDHOSTFILE} - fi - +if [ ${HOSTFILETMP} = 1 ] ; then + rm ${HOSTFILE} +fi +if [ ${UNROLLEDHOSTFILETMP} = 1 ] ; then + rm ${UNROLLEDHOSTFILE} +fi exit 0