@@ -106,36 +106,50 @@ def find_num_nodes(logfile):
106106 return num_nodes
107107
108108
109+ def find_filesystem_test_path (logfile ):
110+ container_mounts_line = re .findall (r'container-mounts=\S*:/data' , logfile )
111+ container_data_mount = container_mounts_line [0 ].replace (
112+ 'container-mounts=' , '' )
113+ return container_data_mount
114+
115+
109116def read_files (logfiles ):
110117 all_results = []
111118 prev_nodes_found = None
119+ prev_filesystem_test_path = None
112120
113121 for filename in logfiles :
114122 with open (filename , 'r' ) as logpointer :
115123 log = logpointer .read ()
116124 results = parse_file (log )
117125 all_results .append (results )
118126 nodes_tested = find_num_nodes (log )
127+ filesystem_test_path = find_filesystem_test_path (log )
119128 if prev_nodes_found and nodes_tested != prev_nodes_found :
120129 raise ValueError ('Error: Mixed node sizes found in log files!' )
130+ if prev_filesystem_test_path and \
131+ filesystem_test_path != prev_filesystem_test_path :
132+ raise ValueError ('Error: Mixed test paths found in log files!' )
121133 prev_nodes_found = nodes_tested
134+ prev_filesystem_test_path = filesystem_test_path
122135 aggregate = Aggregate (
123136 [result .epoch_zero_speed for result in all_results ],
124137 [result .epoch_zero_time for result in all_results ],
125138 [result .elapsed_time for result in all_results ],
126139 [result .average_speed for result in all_results ]
127140 )
128- return aggregate , nodes_tested
141+ return aggregate , nodes_tested , filesystem_test_path
129142
130143
131- def print_averages (results , directory , nodes_tested ):
144+ def print_averages (results , directory , nodes_tested , filesystem_test_path ):
132145 e_zero_speed = average (results .epoch_zero_speeds )
133146 e_zero_time = ms_to_seconds (average (results .epoch_zero_times ))
134147 overall_speed = average (results .average_speeds )
135148 overall_time = ms_to_minutes (average (results .elapsed_times ))
136149
137150 output = f"""MLPerf Results:
138- Directory name: { directory }
151+ Log directory name: { directory }
152+ Filesystem test path: { filesystem_test_path }
139153Number of iterations: { len (results .epoch_zero_speeds )}
140154Nodes tested: { nodes_tested }
141155Epoch 0:
@@ -150,8 +164,9 @@ def print_averages(results, directory, nodes_tested):
150164def main ():
151165 args = parse_args ()
152166 logfiles = get_files (args .directory )
153- aggregate , nodes_tested = read_files (logfiles )
154- print_averages (aggregate , args .directory , nodes_tested )
167+ aggregate , nodes_tested , filesystem_test_path = read_files (logfiles )
168+ print_averages (aggregate , args .directory , nodes_tested ,
169+ filesystem_test_path )
155170
156171
157172if __name__ == '__main__' :
0 commit comments