diff --git a/explorer/dxt.py b/explorer/dxt.py index fca865b..e46cb9e 100644 --- a/explorer/dxt.py +++ b/explorer/dxt.py @@ -37,7 +37,6 @@ from importlib import resources from explorer import version as dxt_version -from packaging import version class Explorer: @@ -268,6 +267,7 @@ def create_dataframe( "start", "end", "osts", + "pthread_id" ] total_logs = 0 runtime = 0 @@ -1171,28 +1171,6 @@ def generate_index(self, file, report): "You can open the index.html file in your browser to interactively explore all plots" ) - def check_log_version(self, file, log_version, library_version): - use_file = file - if version.parse(log_version) < version.parse(library_version): - use_file = file.replace(".darshan", ".converted.darshan") - self.logger.info( - 'Converting .darshan log from {} to {}: format: saving output file "{}" in the current working directory.'.format( - log_version, library_version, use_file - ) - ) - - if not os.path.isfile(use_file): - ret = os.system("darshan-convert {} {}".format(file, use_file)) - - if ret != 0: - self.logger.error( - "Unable to convert .darshan file to version {}".format( - library_version - ) - ) - - return use_file - def main(): PARSER = argparse.ArgumentParser(description="DXT Explorer: ") diff --git a/explorer/plots/operation.py b/explorer/plots/operation.py index d53ed25..eadd475 100644 --- a/explorer/plots/operation.py +++ b/explorer/plots/operation.py @@ -19,7 +19,7 @@ def add_trace_to_graph(dataframe, color_scale=None, stragglers=False): if stragglers: custom_data = ["rank", "duration"] else: - custom_data = ["rank", "duration", "size", "offset", "osts"] + custom_data = ["rank", "duration", "size", "offset", "osts", "pthread_id"] fig.add_traces( list( @@ -598,7 +598,7 @@ def append_content(target_tag, source_path, part="body"): error_x="duration", render_mode="auto", facet_row=facet_row, - custom_data=["rank", "duration", "size", "offset", "osts"], + custom_data=["rank", "duration", "size", "offset", "osts", "pthread_id"], color_discrete_sequence=["#d0e6f5", "#f7d8d5"], category_orders=category_orders, ) @@ -625,7 +625,7 @@ def append_content(target_tag, source_path, part="body"): render_mode="auto", facet_row=facet_row, color_discrete_sequence=["#3c93c2", "#f0746e"], - custom_data=["rank", "duration", "size", "offset", "osts"], + custom_data=["rank", "duration", "size", "offset", "osts", "pthread_id"], category_orders=category_orders, ) @@ -782,7 +782,8 @@ def append_content(target_tag, source_path, part="body"): "Duration: %{customdata[1]}", "Size: %{customdata[2]}", "Offset: %{customdata[3]}", - "Osts: %{customdata[4]}", + "Lustre OSTs: %{customdata[4]}", + "Thread ID: %{customdata[5]}", ] ) ) diff --git a/explorer/plots/spatiality.py b/explorer/plots/spatiality.py index 9fc558d..f43d806 100644 --- a/explorer/plots/spatiality.py +++ b/explorer/plots/spatiality.py @@ -42,6 +42,9 @@ if df.empty: quit() +df["osts"] = df["osts"].astype(object).fillna("-") +df["pthread_id"] = df["pthread_id"].astype(object).fillna("-") + df["duration"] = df["end"] - df["start"] rank_gap = max(df["rank"]) * 0.075 maximum_rank = max(df["rank"]) @@ -77,6 +80,9 @@ def paste0(): label = label + "-" else: label = label + df["osts"].apply(str) + + label += "
" + "Thread ID: " + df["pthread_id"].apply(str) + return label diff --git a/explorer/plots/transfer.py b/explorer/plots/transfer.py index b582869..1ec28d3 100644 --- a/explorer/plots/transfer.py +++ b/explorer/plots/transfer.py @@ -69,6 +69,8 @@ if df.empty: quit() +df["osts"] = df["osts"].astype(object).fillna("-") + df["duration"] = df["end"] - df["start"] duration = max(df["end"]) - min(df["start"]) @@ -125,6 +127,9 @@ def paste0(): label = label + "-" else: label = label + df["osts"].apply(str) + + label += "
" + "Thread ID: " + df["pthread_id"].apply(str) + return label