]> AND Private Git Repository - loba.git/blobdiff - Experimentations/run-all
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Add option to compress output files in run-all.
[loba.git] / Experimentations / run-all
index 5584528a48d3f5cef2a4d6438e57f3a2977b324a..9d4354292b0c7fab232ef51bae877ea7f873d6b2 100755 (executable)
@@ -10,6 +10,7 @@ Options:
     -h  print this help
     -n  dry-run mode (for debugging)
     -c  (continue) do not overwrite previous results
     -h  print this help
     -n  dry-run mode (for debugging)
     -c  (continue) do not overwrite previous results
+    -z  compress output files with gzip
 EOF
     exit $1
 }
 EOF
     exit $1
 }
@@ -34,11 +35,13 @@ array_check() {
 # read args
 overwrite=1
 debug=0
 # read args
 overwrite=1
 debug=0
-while getopts "chn" c; do
+compress=0
+while getopts "chnz" c; do
     case "$c" in
         'c') overwrite=0 ;;
         'h') usage 0 ;;
         'n') debug=1 ;;
     case "$c" in
         'c') overwrite=0 ;;
         'h') usage 0 ;;
         'n') debug=1 ;;
+        'z') compress=1 ;;
         '?') usage 1 ;;
     esac
 done
         '?') usage 1 ;;
     esac
 done
@@ -80,11 +83,18 @@ outfile() {
 }
 
 summary() {
 }
 
 summary() {
-    sed -n '\!^\[main/INFO\] ,----\[ Results \]!,${
-      /send\|recv\|wall clock\|Simulation succeeded/d;p;
-    }' "$1"
+    gzip -cdf "$@" \
+    | sed -n '\!^\[main/INFO\] ,----\[ Results \]!,${
+        /send\|recv\|wall clock\|Simulation succeeded/d;p;
+      }'
 }
 
 }
 
+if [ $compress = 1 ]; then
+    outsuffix=".gz"
+else
+    outsuffix=""
+fi
+
 for plat in "${PLATFORMS[@]}"; do
     tmp=$(basename "$plat" ".xml")
     plat_output="$RESULTS/plat_$tmp"
 for plat in "${PLATFORMS[@]}"; do
     tmp=$(basename "$plat" ".xml")
     plat_output="$RESULTS/plat_$tmp"
@@ -104,19 +114,28 @@ for plat in "${PLATFORMS[@]}"; do
             for bk in "" "-b"; do
                 tmp=$(outfile "loba" $bk "${args[@]}")
                 out="$algo_output/$tmp.out"
             for bk in "" "-b"; do
                 tmp=$(outfile "loba" $bk "${args[@]}")
                 out="$algo_output/$tmp.out"
+                outf="$out$outsuffix"
                 cmd=( "$LOBA" "${COMMON_OPTS[@]}" $bk "${args[@]}" )
                 cmd=( "$LOBA" "${COMMON_OPTS[@]}" $bk "${args[@]}" )
-                log "Run: ${cmd[@]}"$'\n'"... &> $out"
-                if [ $overwrite = 0 -a -e "$out" ]; then
+                log "Run: ${cmd[@]}"$'\n'"... &> $outf"
+                if [ $overwrite = 0 -a -e "$outf" ]; then
                     log "already run !"
                     log "already run !"
-                    summary "$out"
+                    summary "$outf"
                     continue
                 fi
                 if [ $debug = 1 ]; then
                     log "skipped (dry-run)"
                     continue
                 fi
                 if [ $debug = 1 ]; then
                     log "skipped (dry-run)"
-                else
-                    echo "# ${cmd[@]}" > "$out"
-                    "${cmd[@]}" >> "$out" 2>&1
+                    continue
+                fi
+                rm -f "$outf";
+                echo "# ${cmd[@]}" > "$out"
+                if "${cmd[@]}" >> "$out" 2>&1; then
                     summary "$out"
                     summary "$out"
+                else
+                    grep -v '/INFO\]' "$out"
+                fi
+                if [ $compress = 1 ]; then
+                    log "Compress output file."
+                    gzip --best "$out"
                 fi
             done
         done
                 fi
             done
         done