X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/35974372191ed4d77b4ad36a47e130b6f49068ca..22000124cfde898c839f9581a9088d80b162e0c5:/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 4445716892..5b1ceed93f 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 < ${APPLICATIONTMP} < - - + + APPLICATIONHEAD ##---- cache hostnames of hostfile--------------- @@ -130,31 +123,31 @@ if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then NUMHOSTS=$(cat ${HOSTFILE} | wc -l) 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' - NUMPROCS=0 - for line in $replayinstances; do +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 # return IFS back if you need to split new line by spaces: IFS=$IFS_OLD IFS_OLD= # generate three lists, one with instance id, ont with instance size, one with files - instance=$(echo $line|cut -d' ' -f1) - hosttrace=$(cat $(echo $line|cut -d' ' -f2)| tr '\n\r' ' ' ) - NUMPROCSMINE=$(cat $(echo $line|cut -d' ' -f2) | wc -l) + instance=$(echo "$line"|cut -d' ' -f1) + hosttrace=$(cat $(echo "$line"|cut -d' ' -f2)| tr '\n\r' ' ' ) + NUMPROCSMINE=$(cat $(echo "$line"|cut -d' ' -f2) | wc -l) - if [ $NUMPROCSMINE != $(echo $line|cut -d' ' -f3) ]; + 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" exit 1 fi - sleeptime=$(echo $line|cut -d' ' -f4) + sleeptime=$(echo "$line"|cut -d' ' -f4) HAVE_SEQ="`which seq 2>/dev/null`" if [ -n "${HAVE_SEQ}" ]; then @@ -168,8 +161,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 @@ -178,54 +169,49 @@ fi ##---------------------------------------------------------- ##---- 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 - - # 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", "${APP_TRACES[0]:-\${APP_TRACES[0]\}}" >&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