in log_analyzer/log.py [0:0]
def _print_stage_log(stage_name: str, stage_count: int, comm_type_info: Dict, primary_key: List[str], agg_key: List[str], performance_key: List[str], busbw_key: List[str]):
header = f"{'Comm_Type':<15} {'Comm_Group':<12} {'Message_Size':<12} {'Count':<12} {'Avg_Elapsed_Time ± Std ':<24} {'Avg_BusBw ± Std':<24}\n"
separator = "-" * len(header) + "\n"
log_str = separator + header + separator
for pkey in sorted(comm_type_info.keys()):
row_str = ""
values = {}
for i, pkey_name in enumerate(primary_key):
value = pkey[i] if pkey_name != "msg_size" else convert_size_to_msg(pkey[i])
values[pkey_name] = value
for key in agg_key:
value = comm_type_info[pkey][key]
value = convert_size_to_msg(value) if key == "msg_size" else f"{value:.2f}"
values[key] = value
for key in performance_key:
performance_value_list = sorted(comm_type_info[pkey][key])
values[f'avg_{key}'] = f"{np.mean(performance_value_list):.2f}±{np.std(performance_value_list):.2f}"
values[f'min_{key}'] = f"{performance_value_list[0]:.2f}"
values[f'max_{key}'] = f"{performance_value_list[-1]:.2f}"
for key in busbw_key:
busbw_value_list = sorted(comm_type_info[pkey][key])
values[f'avg_{key}'] = f"{np.mean(busbw_value_list):.2f}±{np.std(busbw_value_list):.2f}"
row_str += f"{values['comm_type']:<15} {values['comm_group']:<12} {values['msg_size']:<12} {values['count']:<16} {values['avg__elapsed_time']:<24} {values['avg_busbw']:<18}\n"
log_str += row_str
return log_str