Browse Source

extracting stats from raw data files

user avadapal 6 months ago
parent
commit
e18a5022ea
1 changed files with 91 additions and 0 deletions
  1. 91 0
      repro/rawdata/extract_ramen_stats.py

+ 91 - 0
repro/rawdata/extract_ramen_stats.py

@@ -0,0 +1,91 @@
+import sys
+import re
+
+def extract_init_time(file_contents):
+    lines = file_contents.split('\n')
+    init_time = None
+
+    for line in lines:
+        if line.startswith("InitTime:"):
+            init_time_str = line.split(":")[1].strip()
+            init_time = float(init_time_str.split()[0])
+            break
+
+    return init_time
+
+def extract_time_accesses(file_contents):
+    time_accesses_section = re.search(r'time accesses:\s+([\d.]+) ms', file_contents)
+    if time_accesses_section:
+        time_accesses = float(time_accesses_section.group(1))
+        return time_accesses
+    else:
+        return None
+
+def extract_max_bytes_sent(file_contents):
+    communication_section = re.search(r'communication accesses: {(.*?)}', file_contents, re.DOTALL)
+    if communication_section:
+        communication_stats = communication_section.group(1)
+        num_bytes_sent = [int(match.group(1)) for match in re.finditer(r'num_bytes_sent: (\d+)', communication_stats)]
+        max_bytes_sent = max(num_bytes_sent)
+        return max_bytes_sent
+    else:
+        return None
+
+def extract_max_time_accesses(file_contents):
+    max_time_accesses_section = re.search(r'Maximum time accesses: (\d+\.\d+) ms', file_contents)
+    if max_time_accesses_section:
+        max_time_accesses = float(max_time_accesses_section.group(1))
+        return max_time_accesses
+    else:
+        return None
+
+def extract_max_of_time_accesses(file_contents):
+    max_of_time_accesses_section = re.search(r'Maximum of time accesses: (\d+\.\d+) ms', file_contents)
+    if max_of_time_accesses_section:
+        max_of_time_accesses = float(max_of_time_accesses_section.group(1))
+        return max_of_time_accesses
+    else:
+        return None
+
+def main():
+    if len(sys.argv) != 2:
+        print("Usage: python script.py <filename>")
+        return
+
+    filename = sys.argv[1]
+    
+    try:
+        with open(filename, 'r') as file:
+            file_contents = file.read()
+            max_init_time = extract_init_time(file_contents)
+            time_accesses = extract_time_accesses(file_contents)
+            max_bytes_sent = extract_max_bytes_sent(file_contents)
+            max_time_accesses = extract_max_time_accesses(file_contents)
+            max_of_time_accesses = extract_max_of_time_accesses(file_contents)
+            
+            #if max_init_time is not None:
+             #   print("Maximum InitTime:", max_init_time, "ms")
+            #else:
+             #   print("No InitTime found in the file.")
+            
+            #if time_accesses is not None:
+            #    print("Time Accesses:", time_accesses, "ms")
+           # else:
+           #     print("No time accesses found in the file.")
+            
+            if max_bytes_sent is not None:
+                print(max_bytes_sent)
+            else:
+                print("No communication stats found in the file.")
+
+            if max_init_time is not None and time_accesses is not None:
+                total_time = max_init_time + time_accesses
+                print(total_time)
+            else:
+                print("Cannot calculate total time due to missing values.")
+    except FileNotFoundError:
+        print("File not found:", filename)
+
+if __name__ == "__main__":
+    main()
+