X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347996b4a10c4e8579080692afa60e0afb88b60a..93930744c818285a426e426c674c84275269a7f8:/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 de3cd9cdfd..1288fcbb12 100755 --- a/examples/smpi/replay_multiple/generate_multiple_deployment.sh +++ b/examples/smpi/replay_multiple/generate_multiple_deployment.sh @@ -1,12 +1,10 @@ #! /bin/sh -# Copyright (c) 2007-2014. The SimGrid Team. -# All rights reserved. +# Copyright (c) 2007-2017. The SimGrid Team. All rights reserved. # 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) @@ -121,57 +111,51 @@ 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= # 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) + hosttrace=$(tr '\n\r' ' ' < $(echo "$line"|cut -d' ' -f2)) + NUMPROCSMINE=$(wc -l < $(echo "$line"|cut -d' ' -f2)) 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 + while (( $cnt < $NUMPROCSMINE )) ; do SEQ1="$SEQ1 $cnt" cnt=$((cnt + 1)); done 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 +163,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