diff options
Diffstat (limited to 'pm_data_analysis/pm_data_analyzer.py')
| -rwxr-xr-x | pm_data_analysis/pm_data_analyzer.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/pm_data_analysis/pm_data_analyzer.py b/pm_data_analysis/pm_data_analyzer.py index 6862f98..644a9aa 100755 --- a/pm_data_analysis/pm_data_analyzer.py +++ b/pm_data_analysis/pm_data_analyzer.py | |||
| @@ -13,6 +13,7 @@ import numpy as np | |||
| 13 | # preemption and migration C data exchanger | 13 | # preemption and migration C data exchanger |
| 14 | import pm | 14 | import pm |
| 15 | import pmserialize as pms | 15 | import pmserialize as pms |
| 16 | import statanalyzer as pmstat | ||
| 16 | 17 | ||
| 17 | from optparse import OptionParser | 18 | from optparse import OptionParser |
| 18 | 19 | ||
| @@ -34,16 +35,6 @@ class Overhead: | |||
| 34 | def add(self, ovd_vector, label): | 35 | def add(self, ovd_vector, label): |
| 35 | self.overheads.append([ovd_vector, label]) | 36 | self.overheads.append([ovd_vector, label]) |
| 36 | 37 | ||
| 37 | |||
| 38 | class InterQuartileRange: | ||
| 39 | def __init__(self, low, high): | ||
| 40 | self.low = low | ||
| 41 | self.high = high | ||
| 42 | |||
| 43 | def remOutliers(self, vector): | ||
| 44 | # discard points etc | ||
| 45 | return vector | ||
| 46 | |||
| 47 | def read_valid_data(filename, coresL2, valid_ovds): | 38 | def read_valid_data(filename, coresL2, valid_ovds): |
| 48 | suff = filename.find('.raw') | 39 | suff = filename.find('.raw') |
| 49 | if suff == -1: | 40 | if suff == -1: |
| @@ -78,10 +69,19 @@ def process_raw_data(filename, coresL2, coresC, valid_ovds): | |||
| 78 | print i[0], i[1] | 69 | print i[0], i[1] |
| 79 | 70 | ||
| 80 | # instance the statistical analizer to remove outliers | 71 | # instance the statistical analizer to remove outliers |
| 81 | sd = InterQuartileRange(25,75) | 72 | sd = pmstat.InterQuartileRange(25,75, True) |
| 82 | 73 | ||
| 83 | for i in ovds: | 74 | for i in ovds: |
| 84 | valid_ovds.add(sd.remOutliers(i[0]), i[1]) | 75 | # just add overheads, "forget" preemption length |
| 76 | valid_ovds.add(sd.remOutliers(i[0][:,0]), i[1]) | ||
| 77 | |||
| 78 | if verbose: | ||
| 79 | # check outliers removals | ||
| 80 | for i in ovds: | ||
| 81 | print i[1], len(i[0]) | ||
| 82 | print "\nAfter outliers removal:" | ||
| 83 | for i in valid_ovds: | ||
| 84 | print i[1], len(i[0]) | ||
| 85 | 85 | ||
| 86 | # serialize valid overheads | 86 | # serialize valid overheads |
| 87 | for i in valid_ovds: | 87 | for i in valid_ovds: |
| @@ -111,8 +111,9 @@ def analize_data(valid_ovds, filename, tssize_char): | |||
| 111 | for i in valid_ovds: | 111 | for i in valid_ovds: |
| 112 | # overhead type | 112 | # overhead type |
| 113 | pms.cvs_it(csvf, i[1]) | 113 | pms.cvs_it(csvf, i[1]) |
| 114 | # data (atm just overhead, not length) | 114 | # data (valid_ovds already have only overheads, not length) |
| 115 | vector = i[0][:,0] | 115 | # vector = i[0][:,0] |
| 116 | vector = i[0] | ||
| 116 | if vector != []: | 117 | if vector != []: |
| 117 | pms.cvs_it(csvf, "%5.5f" % np.max(vector)) | 118 | pms.cvs_it(csvf, "%5.5f" % np.max(vector)) |
| 118 | pms.cvs_it(csvf, "%5.5f" % np.average(vector)) | 119 | pms.cvs_it(csvf, "%5.5f" % np.average(vector)) |
