diff options
| author | Glenn Elliott <gelliott@cs.unc.edu> | 2014-01-29 22:51:48 -0500 |
|---|---|---|
| committer | Glenn Elliott <gelliott@cs.unc.edu> | 2014-01-29 22:51:48 -0500 |
| commit | bc96d3d27124381d4a4acac0b684e9ad4280a22c (patch) | |
| tree | f538ae31da3756291025d3c11f157b46fb8e640b | |
| parent | 207ed60eb4dfc8e0a050cc39a7f88d6a945ceb9c (diff) | |
Compute proportional graph response times.
| -rw-r--r-- | parse/sched.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/parse/sched.py b/parse/sched.py index 83004f2..11a614e 100644 --- a/parse/sched.py +++ b/parse/sched.py | |||
| @@ -86,7 +86,7 @@ PgmTaskParams = namedtuple('PgmTaskParams', ['node_type', 'gid']) | |||
| 86 | TaskData = recordtype('TaskData', ['params', 'pgm_params', 'jobs', 'blocks', | 86 | TaskData = recordtype('TaskData', ['params', 'pgm_params', 'jobs', 'blocks', |
| 87 | 'response', 'lateness', 'misses', | 87 | 'response', 'lateness', 'misses', |
| 88 | 'pgm_response', 'pgm_lateness', 'pgm_misses']) | 88 | 'pgm_response', 'pgm_lateness', 'pgm_misses']) |
| 89 | GraphParams = recordtype('GraphParams', ['gid', 'src', 'sink']) | 89 | GraphParams = recordtype('GraphParams', ['gid', 'src', 'sink', 'etoe']) |
| 90 | GraphData = recordtype('GraphData', ['params', 'jobs', 'response']) | 90 | GraphData = recordtype('GraphData', ['params', 'jobs', 'response']) |
| 91 | 91 | ||
| 92 | PGM_NOT_A_NODE = 0 | 92 | PGM_NOT_A_NODE = 0 |
| @@ -297,7 +297,7 @@ class SysReleaseRecord(SchedRecord): | |||
| 297 | pass | 297 | pass |
| 298 | 298 | ||
| 299 | class PgmParamRecord(SchedRecord): | 299 | class PgmParamRecord(SchedRecord): |
| 300 | FIELDS = [('node_type', c_uint32), ('graph_pid', c_uint16)] | 300 | FIELDS = [('node_type', c_uint32), ('graph_pid', c_uint16), ('unused2', c_uint16), ('etoe', c_uint64)] |
| 301 | 301 | ||
| 302 | def process(self, task_dict): | 302 | def process(self, task_dict): |
| 303 | pass | 303 | pass |
| @@ -309,7 +309,7 @@ class PgmParamRecord(SchedRecord): | |||
| 309 | if self.node_type == PGM_SRC or self.node_type == PGM_SINK or self.node_type == PGM_SRC_SINK: | 309 | if self.node_type == PGM_SRC or self.node_type == PGM_SINK or self.node_type == PGM_SRC_SINK: |
| 310 | graph_data = graph_dict[self.graph_pid] | 310 | graph_data = graph_dict[self.graph_pid] |
| 311 | if not graph_data.params: | 311 | if not graph_data.params: |
| 312 | graph_data.params = GraphParams(self.graph_pid, 0, 0) | 312 | graph_data.params = GraphParams(self.graph_pid, 0, 0, self.etoe) |
| 313 | if self.node_type == PGM_SRC: | 313 | if self.node_type == PGM_SRC: |
| 314 | assert graph_data.params.src == 0 | 314 | assert graph_data.params.src == 0 |
| 315 | graph_data.params.src = self.pid | 315 | graph_data.params.src = self.pid |
| @@ -472,6 +472,8 @@ def extract_sched_data(result, data_dir, work_dir): | |||
| 472 | 472 | ||
| 473 | gstat_data["graph-response-max"].append(float(response.max)/NSEC_PER_MSEC) | 473 | gstat_data["graph-response-max"].append(float(response.max)/NSEC_PER_MSEC) |
| 474 | gstat_data["graph-response-avg"].append(response.avg/NSEC_PER_MSEC) | 474 | gstat_data["graph-response-avg"].append(response.avg/NSEC_PER_MSEC) |
| 475 | gstat_data["graph-response-prop-max"].append(float(response.max) / gdata.params.etoe) | ||
| 476 | gstat_data["graph-response-prop-avg"].append(response.avg / gdata.params.etoe) | ||
| 475 | 477 | ||
| 476 | # Summarize value groups | 478 | # Summarize value groups |
| 477 | for name, data in stat_data.iteritems(): | 479 | for name, data in stat_data.iteritems(): |
