Browse Source

more scripts

user avadapal 1 year ago
parent
commit
b77a772638
3 changed files with 218 additions and 0 deletions
  1. 37 0
      repro/extract_data_bs.py
  2. 72 0
      repro/extract_data_from_preproc.py
  3. 109 0
      repro/generate_raw_data_bs_const_db.sh

+ 37 - 0
repro/extract_data_bs.py

@@ -0,0 +1,37 @@
+import sys
+import re
+
+def extract_binary_search_data(output):
+    bytes_sent_pattern = r"BINARY SEARCH =====\n\d+ messages sent\n(\d+) message bytes sent"
+    wall_clock_pattern = r"BINARY SEARCH =====\n\d+ messages sent\n\d+ message bytes sent\n\d+ Lamport clock \(latencies\)\n\d+ local AES operations\n(\d+) milliseconds wall clock time"
+
+    bytes_sent_matches = re.findall(bytes_sent_pattern, output)
+    wall_clock_matches = re.findall(wall_clock_pattern, output)
+
+    bytes_sent = [int(match) for match in bytes_sent_matches]
+    wall_clock_time = [int(match) for match in wall_clock_matches]
+
+    return bytes_sent, wall_clock_time
+
+if __name__ == "__main__":
+    if len(sys.argv) != 2:
+        print("Usage: python script.py <input_file>")
+        sys.exit(1)
+
+    input_file = sys.argv[1]
+
+    try:
+        with open(input_file, 'r') as f:
+            output = f.read()
+    except FileNotFoundError:
+        print(f"File not found: {input_file}")
+        sys.exit(1)
+
+    bytes_sent, wall_clock_time = extract_binary_search_data(output)
+
+    max_bytes_sent = max(bytes_sent)
+    max_wall_clock_time = max(wall_clock_time)
+
+    print(f"{max_bytes_sent}")
+    print(f"{max_wall_clock_time}")
+

+ 72 - 0
repro/extract_data_from_preproc.py

@@ -0,0 +1,72 @@
+import argparse
+
+def parse_file(file_path):
+    data = {'heapsize': None, 'is_optimized': None, 'P0': {}, 'P1': {}, 'P2': {}}
+    current_party = None
+    with open(file_path, 'r') as file:
+        lines = file.readlines()
+        for line in lines:
+            if line.startswith("heapsize:"):
+                data['heapsize'] = int(line.split(":")[1].strip())
+            elif line.startswith("is_optimized:"):
+                data['is_optimized'] = int(line.split(":")[1].strip())
+            elif line.startswith("===== P"):
+                current_party = line.split()[1]
+            elif current_party and "milliseconds wall clock time" in line:
+                time_parts = line.split()
+                data[current_party]['wall_clock_time'] = int(time_parts[0])
+            elif current_party and "messages sent" in line:
+                data[current_party]['messages_sent'] = int(line.split()[0])
+            elif current_party and "message bytes sent" in line:
+                data[current_party]['message_bytes_sent'] = int(line.split()[0])
+    return data
+
+def main():
+    parser = argparse.ArgumentParser(description="Parse file and extract heapsize, is_optimized, wall clock time, messages sent, and message bytes sent for all three parties.")
+    parser.add_argument("file_path", type=str, help="Path to the input file")
+    args = parser.parse_args()
+    
+    file_path = args.file_path
+    parsed_data = parse_file(file_path)
+    
+    print(f"{parsed_data['heapsize']}")
+    print(f"{parsed_data['is_optimized']}")
+    #for party, party_data in parsed_data.items():
+     #   if party != 'heapsize' and party != 'is_optimized':
+      #      print(f"Party: {party}")
+      #      if 'wall_clock_time' in party_data:
+       #         print(f"Wall Clock Time: {party_data['wall_clock_time']} ms")
+       #     if 'messages_sent' in party_data:
+        #        print(f"Messages Sent: {party_data['messages_sent']}")
+        #    if 'message_bytes_sent' in party_data:
+         #       print(f"Message Bytes Sent: {party_data['message_bytes_sent']}")
+         #   print()
+   # max_wall_clock_time = 0
+   # max_message_bytes_sent = 0
+
+    max_wall_clock_time = 0
+    max_message_bytes_sent = 0
+
+    for party, party_data in parsed_data.items():
+        if party != 'heapsize' and party != 'is_optimized':
+            #print(f"Party: {party}")
+            if 'wall_clock_time' in party_data:
+                wall_clock_time = party_data['wall_clock_time']
+               # print(f"Wall Clock Time: {wall_clock_time} ms")
+                max_wall_clock_time = max(max_wall_clock_time, wall_clock_time)
+            if 'messages_sent' in party_data:
+                messages_sent = party_data['messages_sent']
+                #print(f"Messages Sent: {messages_sent}")
+            if 'message_bytes_sent' in party_data:
+                message_bytes_sent = party_data['message_bytes_sent']
+                #print(f"Message Bytes Sent: {message_bytes_sent}")
+                max_message_bytes_sent = max(max_message_bytes_sent, message_bytes_sent)
+            #print()
+
+    print(f"{max_wall_clock_time}")
+    print(f"{max_message_bytes_sent}")
+
+
+if __name__ == "__main__":
+    main()
+

+ 109 - 0
repro/generate_raw_data_bs_const_db.sh

@@ -0,0 +1,109 @@
+
+echo "Running the Binary Experiments (Basic)"
+cd ..
+nitrs=20
+for itr in $(seq 1 $nitrs); do
+    echo $itr
+    echo "bssize: 16\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_16_itr_$itr"	
+    ./docker/run-experiment -p m:17 r17:17 c:17 p:64 >> "repro/data/log_basic_bs_preproc_16_itr_$itr"
+    echo "preprocessing_bs_16 (basic preproc) - iteration $itr"
+    echo "bssize: 16\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_16_itr_$itr"	
+    ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_16_itr_$itr"
+    echo "preprocessing_bs_16 (basic online) - iteration $itr"
+done    
+  
+nitrs=20
+for itr in $(seq 1 $nitrs); do
+    echo "bssize: 18\nis_optimized: 0\n" > 		            "repro/data/log_basic_bs_preproc_18_itr_$itr"	
+    ./docker/run-experiment -p m:19 r19:19 c:19 p:64 >> "repro/data/log_basic_bs_preproc_18_itr_$itr"
+    echo "preprocessing_bs_18 (basic online)"
+    echo "bssize: 18\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_18_itr_$itr"
+    ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_18_itr_$itr"
+    echo "preprocessing_bs_18 (basic online)"	
+done
+
+nitrs=20
+for itr in $(seq 1 $nitrs); do
+    echo "bssize: 20\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_20_itr_$itr"	
+    ./docker/run-experiment -p m:21 r21:21 c:21 p:64 >> "repro/data/log_basic_bs_preproc_20_itr_$itr"
+    echo "preprocessing_bs_20 (basic preproc)"
+    echo "bssize: 20\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_20_itr_$itr"
+    ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_20_itr_$itr"
+    echo "preprocessing_bs_20 (basic online)"
+done
+
+nitrs=10
+for itr in $(seq 1 $nitrs); do
+    echo "bssize: 22\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_22_itr_$itr"	
+   ./docker/run-experiment -p m:23 r23:23 c:23 p:64 >> "repro/data/log_basic_bs_preproc_22_itr_$itr"
+   echo "preprocessing_bs_22 (basic preproc)"
+   echo "bssize: 22\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_22_itr_$itr"
+   ./docker/run-experiment  -t 64 bbsearch 16 >>  "repro/data/log_basic_bs_online_22_itr_$itr"
+   echo "preprocessing_bs_22 (basic online)"
+done
+
+nitrs=10
+for itr in $(seq 1 $nitrs); do
+  echo "bssize: 24\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_24_itr_$itr"
+  ./docker/run-experiment -p m:25 r25:25 c:25 p:64 >>  "repro/data/log_basic_bs_preproc_24_itr_$itr"
+  echo "preprocessing_bs_24 (basic preproc)"
+  echo "bssize: 24\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_24_itr_$itr"
+  ./docker/run-experiment  -t 64 bbsearch 16 >>   "repro/data/log_basic_bs_online_24_itr_$itr"
+  echo "preprocessing_bs_24 (basic online)"
+done
+
+nitrs=5
+for itr in $(seq 1 $nitrs); do
+  echo "bssize: 26\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_26_itr_$itr"
+  ./docker/run-experiment -p m:27 r27:27 c:27 p:64 >>  "repro/data/log_basic_bs_preproc_26_itr_$itr"
+  echo "bssize: 26\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_26_itr_$itr"
+  ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_26_itr_$itr"
+  echo "preprocessing_bs_26 (basic online)"
+done
+
+
+echo "Running the Binary Search Experiments (Optimized)"
+nitrs=10
+for itr in $(seq 1 $nitrs); do
+   echo "bssize: 16\nis_optimized: 1\n" 			  >  "repro/data/log_opt_bs_preproc_16_itr_$itr"	 
+  ./docker/run-experiment -p  i16:1 c:17 p:64 	  >> "repro/data/log_opt_bs_preproc_16_itr_$itr"
+  echo "preprocessing_bs_16 (opt preproc)"
+   echo "bssize: 16\nis_optimized: 1\n" 				     > "repro/data/log_opt_bs_online_16_itr_$itr"
+  ./docker/run-experiment -t 64 bsearch 16   >> "repro/data/log_opt_bs_online_16_itr_$itr"
+  echo "preprocessing_bs_16 (opt online)"
+
+   echo "bssize: 18\nis_optimized: 1\n" 		     	              > "repro/data/log_opt_bs_preproc_18_itr_$itr"	
+  ./docker/run-experiment -p  i18:1 c:19 p:64                        >> "repro/data/log_opt_bs_preproc_18_itr_$itr"
+   echo "preprocessing_bs_18 (opt preproc)"
+   echo "bssize: 18\nis_optimized: 1\n"                                    > "repro/data/log_opt_bs_online_18_itr_$itr"
+  ./docker/run-experiment -t 64 bsearch 18   >> "repro/data/log_opt_bs_online_18_itr_$itr"
+  echo "preprocessing_bs_18 (opt online)"
+
+  echo "bssize: 20\nis_optimized: 1\n"                         > "repro/data/log_opt_bs_preproc_20_itr_$itr"
+  ./docker/run-experiment -p  i20:1 c:21 p:64    >> "repro/data/log_opt_bs_preproc_20_itr_$itr"
+  echo "preprocessing_bs_20 (opt preproc)"
+   echo "bssize: 20\nis_optimized: 1\n"                                   > "repro/data/log_opt_bs_online_20_itr_$itr"
+  ./docker/run-experiment -t 64 bsearch 20  >> "repro/data/log_opt_bs_online_20_itr_$itr"
+  echo "preprocessing_bs_20 (opt online)"
+
+   echo "bssize: 22\nis_optimized: 1\n"        > "repro/data/log_opt_bs_preproc_22_itr_$itr"
+ ./docker/run-experiment -p  i22:1 c:23 p:64    >> "repro/data/log_opt_bs_preproc_22_itr_$itr"
+  echo "preprocessing_bs_22 (opt preproc)"
+   echo "bssize: 22\nis_optimized: 1\n" > "repro/data/log_opt_bs_online_22_itr_$itr"
+ ./docker/run-experiment -t 64 bsearch 22  >> "repro/data/log_opt_bs_online_22_itr_$itr"
+  echo "preprocessing_bs_22 (opt online)"
+
+ echo "bssize: 24\nis_optimized: 1\n" > "repro/data/log_opt_bs_preproc_24_itr_$itr"
+ ./docker/run-experiment -p  i24:1 c:25 p:64 >> "repro/data/log_opt_bs_preproc_24_itr_$itr"
+  echo "preprocessing_bs_24 (opt preproc)"
+   echo "bssize: 24\nis_optimized: 1\n" > "repro/data/log_opt_bs_online_24_itr_$itr"
+ ./docker/run-experiment -t 64 bsearch 24  >> "repro/data/log_opt_bs_online_24_itr_$itr"
+  echo "preprocessing_bs_24 (opt online)"
+
+  echo "bssize: 26\nis_optimized: 1\n" > "repro/data/log_opt_bs_preproc_26_itr_$itr"
+ ./docker/run-experiment -p  i26:1 c:27 p:64 >> "repro/data/log_opt_bs_preproc_26_itr_$itr"
+  echo "preprocessing_bs_26 (opt preproc)"
+  echo "bssize: 26\nis_optimized: 1\n" > "repro/data/log_opt_bs_online_26_itr_$itr"
+  ./docker/run-experiment -t 64 bsearch 26  >> "repro/data/log_opt_bs_online_26_itr_$itr"
+  echo "preprocessing_bs_26 (opt online)"
+done