|
@@ -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()
|
|
|
+
|