adapt scripts for modes (thread and process)
authorLaurent Mazet <mazet@softndesign.org>
Sun, 2 Nov 2025 21:40:07 +0000 (22:40 +0100)
committerLaurent Mazet <mazet@softndesign.org>
Sun, 2 Nov 2025 21:40:07 +0000 (22:40 +0100)
addlogdate.sh
candles.gp
generatecandle.sh
generatedoc.sh
generateplot.sh
getdate.awk
gettable.awk
gettable.sh
histogram.gp
rawmeasures.gp
test.sh

index d53e9d5ed648abc7fae8af4a35baa21c674333b3..2818622ef5f315f12a7159485e3ca5a26ac7d2d1 100755 (executable)
@@ -5,7 +5,7 @@ base=$(cd $(dirname $0); pwd)
 echo "<h2>Simulation logs</h2>"
 
 echo "<table border=\"1\" cellpadding=\"5\" cellspacing=\"2\" width=\"100%\">"
-echo "<thead><tr><th>Test</th><th>Dedicated<br>core(s)</th><th>Load<br>(%)</th><th>Duration<br>(s)</th></tr></thead>"
+echo "<thead><tr><th>Test</th><th>Mode</th><th>Dedicated<br>core(s)</th><th>Load<br>(%)</th><th>Duration<br>(s)</th></tr></thead>"
 
 echo "<tbody>"
 
index 047b1606b7c0f4750738121e92f8d45ee569d7b0..bf8428fb1d54944bd06ba32ebec6afd24b5857d4 100644 (file)
@@ -5,7 +5,7 @@ reset
 
 data = 'DATA'
 
-set title "Test TITLE - Dedicated core(s) (CORE)"
+set title "Test TITLE - MODE - Dedicated core(s) (CORE)"
 set xlabel 'load (%)'
 set ylabel 'latency (µs)'
 set format y "%.1f"
index 50453221c9dc6e06ef974de0af993346f8b3902e..e429bcab2de5578b1a25066fc7b95e17e95c3699 100755 (executable)
@@ -7,24 +7,32 @@ for csv; do
 
     test=$($base/getname.sh "$title")
 
-    for dcore in 0 1 2; do
+    for nmode in 0 1; do
 
-      name=$test-${dcore}k
-
-      case "$dcore" in
-      0) core="any core";;
-      1) core="1 core";;
-      2) core="2 cores";;
+      case "$nmode" in
+      0) mode="thread";;
+      1) mode="process";;
       esac
 
-      awk -F, '$1 == "'"$title"'" && $2 == '$dcore' { $1=$2=""; print }' $csv | sed 's/  //' | sort -n > $name.tab
-      if [ -s "$name.tab" ]; then
-        cat $base/candles.gp | \
-          m4 -D CORE="$core" -D DATA="$name.tab" -D TITLE="$title" | \
-          gnuplot > $name.pdf
-      else
-        rm -f $name.tab
-      fi
+      for dcore in 0 1 2; do
+
+        name=$test-${dcore}k-m${nmode}
+
+        case "$dcore" in
+        0) core="any core";;
+        1) core="1 core";;
+        2) core="2 cores";;
+        esac
+
+        awk -F, '$1 == "'"$title"'" && $2 == '$dcore' { $1=$2=""; print }' $csv | sed 's/  //' | sort -n > $name.tab
+        if [ -s "$name.tab" ]; then
+          cat $base/candles.gp | \
+            m4 -D CORE="$core" -D DATA="$name.tab" -D MODE="$mode" -D TITLE="$title" | \
+            gnuplot > $name.pdf
+        else
+          rm -f $name.tab
+        fi
+      done
     done
   done
 done
index bb6e0f79afa7404a8015c5baffc4b2ee5625cac7..e8a051f7736f40fae75b046645a4d8e05e72d884 100755 (executable)
@@ -10,6 +10,7 @@ for tab; do
 
   test=$(echo $tab | awk -F'[.-]' '{ print $1 }')
   dcore=$(echo $tab | awk -F'[.-]' '{ print $2 }' | sed 's/k//')
+  nmode=$(echo $tab | awk -F'[.-]' '{ print $3 }' | sed 's/m//')
 
   title=$($base/getname.sh -r $test)
   case $dcore in
@@ -17,8 +18,12 @@ for tab; do
   1) core="1 dedicated core";;
   2) core="2 dedicated cores";;
   esac
+  case "$nmode" in
+  0) mode="thread";;
+  1) mode="process";;
+  esac
 
-  echo "<h2>$title - $core</h2>"
+  echo "<h2>$title - $mode - $core</h2>"
 
   echo "<h3>Statistic summary</h3>"
 
index cc3f4bf0427fe5d2c8c48f1771667e693bd3b9ff..e9edacc5d93f06e80bdc95301bf8f41dedf56841 100755 (executable)
@@ -8,14 +8,15 @@ for data; do
   title=$(awk '/Test:/ { sub(/[^:]*: /, ""); print}' $log)
   core=$(awk -F: '/Dedicated core/ { print  ($2 == 0) ? "any core" : $2 " core" ($2 > 1 ? "s" : "") }' $log)
   load=$(awk '/CPU load/ { print $3 }' $log)
+  mode=$(awk '$2 == "mode" { print $1 }' $log)
 
   output=$(echo $data | sed 's/\.dat/-raw.pdf/')
   cat $base/rawmeasures.gp | \
-    m4 -D CORE="$core" -D DATA="$data" -D LOAD="$load" -D TITLE="$title" | \
+    m4 -D CORE="$core" -D DATA="$data" -D LOAD="$load" -D MODE="$mode" -D TITLE="$title" | \
     gnuplot > $output
 
   output=$(echo $data | sed 's/\.dat/-hist.pdf/')
   cat $base/histogram.gp | \
-    m4 -D CORE="$core" -D DATA="$data" -D LOAD="$load" -D TITLE="$title" | \
+    m4 -D CORE="$core" -D DATA="$data" -D LOAD="$load" -D MODE="$mode" -D TITLE="$title" | \
     gnuplot > $output
 done
index 00404c0308d632da9f967c692b9f280d068c8bc2..f6606d33355ad7f1bfdfec53896b91f34aaad23a 100755 (executable)
@@ -28,6 +28,7 @@ BEGIN {
 
 { sub (/us$/, "") }
 
+$2 == "mode" { mode=$1 }
 /Dedicated/ { dcore=$3 }
 /CPU load/ { load=$3 }
 
@@ -36,7 +37,7 @@ BEGIN {
     if (start == "") {
         start = time
     } else {
-        print test, dcore, load, eval(time "-" start)
+        print test, mode, dcore, load, eval(time "-" start)
         start = ""
     }
 }
index 9f4c99cf4949e10762c555f9d0cf6bf4f78b547c..48bdef995c71d6bc865555a3fbd442f915ff1a47 100755 (executable)
@@ -3,7 +3,7 @@
 BEGIN {
     OFS=","
     if (!nohead) {
-        print "Test", "Dedicated core(s)", "Load (%)", "Minimum (µs)", "Average (µs)", "Maximum (µs)", "Standard Dev. (µs)", "25th % (µs)", "Median (µs)", "75th % (µs)", "99th % (µs)"
+        print "Test", "Mode", "Dedicated core(s)", "Load (%)", "Minimum (µs)", "Average (µs)", "Maximum (µs)", "Standard Dev. (µs)", "25th % (µs)", "Median (µs)", "75th % (µs)", "99th % (µs)"
     }
 }
 
@@ -14,6 +14,7 @@ BEGIN {
 
 { sub (/us$/, "") }
 
+$2 == "mode" { mode=$1 }
 /Dedicated/ { dcore=$3 }
 /CPU load/ { load=$3 }
 /Minimum/ { min=$3 }
@@ -27,5 +28,5 @@ BEGIN {
 /99th/ { p99=$4 }
 
 /Histogram/ {
-    print test, dcore, load, min, avg, max, std, p25, med, p75, p99
+    print test, mode, dcore, load, min, avg, max, std, p25, med, p75, p99
 }
index 381c0768ce3d5635d8bf7d3df1730eb12bb8988d..31049642a259d8b696b500647a2094e8bba2bfc8 100755 (executable)
@@ -7,11 +7,13 @@ awk '/nohead/ {getline; sub(/print/, ""); gsub (/ *"/, ""); print}' $base/gettab
 nbcpu=$(grep -c processor /proc/cpuinfo)
 for exe in *.exe; do
   test=$(echo $exe | sed 's/\.exe//');
-  for core in $(seq 0 2); do
-    for cpu in $(seq 0 $nbcpu); do
-      load=$(expr $cpu \* 100 / $nbcpu)
-      name=${test}-${core}k-${load}%
-      [ -f "$name.log" ] && awk -f $base/gettable.awk -v nohead=1 $name.log
+  for mode in 0 1; do
+    for core in $(seq 0 2); do
+      for cpu in $(seq 0 $nbcpu); do
+        load=$(expr $cpu \* 100 / $nbcpu)
+        name=${test}-${core}k-${load}%-m${mode}
+        [ -f "$name.log" ] && [ grep -q OK "$name.log" ] && awk -f $base/gettable.awk -v nohead=1 $name.log
+      done
     done
   done
 done
index 60b92b6bcea0c903c73aaa1e3ace1f0d462d43e9..53dd85b71d6702ccb6be990e591d8484b02afb4a 100644 (file)
@@ -7,7 +7,7 @@ stats data nooutput
 nb = STATS_records
 f(x) = x / 1000.
 
-set title "Test TITLE - Load LOAD - Dedicated core(s) (CORE)"
+set title "Test TITLE - MODE - Load LOAD - Dedicated core(s) (CORE)"
 set xlabel 'latency (µs)'
 set ylabel '# of tests (%)'
 set format x "%.1f"
index cc2c840b218e4636f99a87873b222517d8af38b3..ef929fde134b5d8e69d7c5f7a979e95befedeba2 100644 (file)
@@ -8,7 +8,7 @@ data = 'DATA'
 stats data nooutput
 threshold = ceil ((STATS_mean + 3 * STATS_stddev) / 1000) * 1000
 
-set title "Test TITLE - Load LOAD - Dedicated core(s) (CORE)"
+set title "Test TITLE - MODE - Load LOAD - Dedicated core(s) (CORE)"
 set xlabel '# of test'
 set ylabel 'latency (µs)'
 set format y "%.1f"
diff --git a/test.sh b/test.sh
index 1acffe99997a48aa888e3ff9d1f2c1725564786c..5053b419f9982c3593ebe8c2921f4807869b0e46 100755 (executable)
--- a/test.sh
+++ b/test.sh
@@ -11,7 +11,7 @@ run() {
   load=$(expr $lcpu \* 100 / $nbcpu)
   for exe in *.exe; do
     test=$(echo $exe | sed 's/\.exe//')
-    name=$test-${dcore}k-${load}%
+    name=$test-${dcore}k-${load}%-m${mode}
     echo -e "\033[0;1mTest $test\033[0;0m"
     date | tee $name.log
     ./getinfo.sh | tee -a $name.log