Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

import pkg_resources


# -- Project information -----------------------------------------------------

project = "pipit"
Expand Down
1 change: 0 additions & 1 deletion docs/examples/csv_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import pipit as pp


if __name__ == "__main__":
# Use pipit's ``from_csv`` API to read in traces in CSV format.
# The result is stored into pipit's Trace data structure.
Expand Down
1 change: 0 additions & 1 deletion docs/examples/hpctoolkit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import pipit as pp


if __name__ == "__main__":
# Path to HPCToolkit traces
dirname = "../../pipit/tests/data/ping-pong-hpctoolkit"
Expand Down
1 change: 0 additions & 1 deletion docs/examples/nsight.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import pipit as pp


if __name__ == "__main__":
# Path to Nsight traces
filename = "../../pipit/tests/data/nbody-nvtx/trace.csv"
Expand Down
1 change: 0 additions & 1 deletion docs/examples/otf2_read.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import pipit as pp


if __name__ == "__main__":
# Path to OTF2 traces
dirname = "../../pipit/tests/data/ping-pong-otf2"
Expand Down
1 change: 0 additions & 1 deletion docs/examples/projections.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import pipit as pp


if __name__ == "__main__":
# Path to OTF2 traces
dirname = "../../pipit/tests/data/ping-pong-projections"
Expand Down
21 changes: 13 additions & 8 deletions pipit/trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,14 +277,19 @@ def _match_caller_callee_by_level(filtered_df):
enter_leave_df = self.events.loc[enter_leave_mask]

# add dummy values for depth/parent/children
# (otherwise loc won't insert the values)
self.events["_depth"] = 0
self.events["_parent"] = None
self.events["_children"] = None
self.events.loc[enter_leave_mask] = enter_leave_df.groupby(
self.parallelism_levels, group_keys=False, dropna=False

dummy = enter_leave_df.groupby(
self.parallelism_levels, group_keys=False, dropna=False, observed=False
).apply(_match_caller_callee_by_level)

# ensure proper indexing alignment on insert
self.events.loc[enter_leave_mask, "_depth"] = dummy["_depth"]
self.events.loc[enter_leave_mask, "_parent"] = dummy["_parent"]
self.events.loc[enter_leave_mask, "_children"] = dummy["_children"]

self.events = self.events.astype({"_depth": "Int32", "_parent": "Int32"})
self.events = self.events.astype({"_depth": "category", "_parent": "category"})

Expand Down Expand Up @@ -638,7 +643,7 @@ def calc_idle_time(events):
return idle_time

return (
self.events.groupby(self.parallelism_levels, dropna=False)
self.events.groupby(self.parallelism_levels, dropna=False, observed=False)
.apply(
calc_idle_time,
)
Expand Down Expand Up @@ -683,7 +688,7 @@ def time_profile(self, num_bins=50, normalized=False):
self.calc_inc_metrics(["Timestamp (ns)"])

# Filter by Enter rows
events = self.events[self.events["Event Type"] == "Enter"].copy(deep=False)
events = self.events[self.events["Event Type"] == "Enter"]
names = events["Name"].unique().tolist()

# Create equal-sized bins
Expand All @@ -706,7 +711,7 @@ def calc_exc_time_in_bin(events):
}

# start out with exc times being a copy of inc times
exc_times = list(events["inc_time_in_bin"].copy(deep=False))
exc_times = list(events["inc_time_in_bin"])

# filter to events that have children
filtered_df = events.loc[events["_children"].notnull()]
Expand Down Expand Up @@ -741,7 +746,7 @@ def calc_exc_time_in_bin(events):
in_bin = events[
(events["_matching_timestamp"] > start)
& (events["Timestamp (ns)"] < end)
].copy(deep=False)
]

# Calculate inc_time_in_bin for each function
# Case 1 - Function starts in bin
Expand Down Expand Up @@ -776,7 +781,7 @@ def calc_exc_time_in_bin(events):
calc_exc_time_in_bin(in_bin)

# Sum across all processes
agg = in_bin.groupby("Name")["exc_time_in_bin"].sum()
agg = in_bin.groupby("Name", observed=False)["exc_time_in_bin"].sum()
profile.append(agg.to_dict())

# Convert to DataFrame
Expand Down