in extract_metrics.py [0:0]
def create_subdirectory_metrics(input_folder):
"""Create metrics.csv files in each subdirectory"""
pattern = os.path.join(input_folder, '**/*.out')
out_files = glob.glob(pattern, recursive=True)
print(f"Found {len(out_files)} .out files")
processed_dirs = []
for file_path in out_files:
dir_path = os.path.dirname(file_path)
dir_name = os.path.basename(dir_path)
output_csv = os.path.join(dir_path, 'metrics.csv')
params = parse_folder_name(dir_name)
print(f"Processing {file_path}...")
avg_mfu, avg_tokens_s_gpu = process_file(file_path)
status = read_status(os.path.join(dir_path, 'status.txt'))
params['run_name'] = dir_name
write_csv(params, output_csv)
if status is not None:
params['status'] = status
write_csv(params, output_csv)
if avg_tokens_s_gpu is not None:
params['avg_tokens_s_gpu'] = avg_tokens_s_gpu
write_csv(params, output_csv)
processed_dirs.append(dir_path)
print(f"Processed {file_path} -> Created metrics.csv")
if avg_mfu is not None:
params['avg_mfu'] = avg_mfu
write_csv(params, output_csv)
processed_dirs.append(dir_path)
print(f"Processed {file_path} -> Created metrics.csv")
return processed_dirs