diff options
| author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-07 23:40:12 -0400 |
|---|---|---|
| committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-07 23:40:12 -0400 |
| commit | 5d97a6baf6166b74355c6e744e010949a46fd625 (patch) | |
| tree | 9a0ac19bd5cb0b5a366fc2e7a9c814a7ab520a18 /experiment | |
| parent | c8cb14963511d5d1a3eb46624bcc0d2bcdf3b9bc (diff) | |
Split scheduling data by task criticality.
Diffstat (limited to 'experiment')
| -rw-r--r-- | experiment/experiment.py | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/experiment/experiment.py b/experiment/experiment.py index a44f798..e6dc92d 100644 --- a/experiment/experiment.py +++ b/experiment/experiment.py | |||
| @@ -40,6 +40,8 @@ class Experiment(object): | |||
| 40 | self.finished_dir = finished_dir | 40 | self.finished_dir = finished_dir |
| 41 | self.proc_entries = proc_entries | 41 | self.proc_entries = proc_entries |
| 42 | self.executables = executables | 42 | self.executables = executables |
| 43 | self.exec_out = None | ||
| 44 | self.exec_err = None | ||
| 43 | 45 | ||
| 44 | self.__make_dirs() | 46 | self.__make_dirs() |
| 45 | self.__assign_executable_cwds() | 47 | self.__assign_executable_cwds() |
| @@ -151,23 +153,26 @@ class Experiment(object): | |||
| 151 | print "[Exp %s]: %s" % (self.name, msg) | 153 | print "[Exp %s]: %s" % (self.name, msg) |
| 152 | 154 | ||
| 153 | def run_exp(self): | 155 | def run_exp(self): |
| 154 | self.setup() | ||
| 155 | |||
| 156 | succ = False | 156 | succ = False |
| 157 | |||
| 158 | try: | 157 | try: |
| 159 | self.__run_tasks() | 158 | self.setup() |
| 160 | self.log("Saving results in %s" % self.finished_dir) | 159 | |
| 161 | succ = True | 160 | try: |
| 161 | self.__run_tasks() | ||
| 162 | self.log("Saving results in %s" % self.finished_dir) | ||
| 163 | succ = True | ||
| 164 | finally: | ||
| 165 | self.teardown() | ||
| 162 | finally: | 166 | finally: |
| 163 | self.teardown() | 167 | self.log("Switching to Linux scheduler") |
| 168 | litmus_util.switch_scheduler("Linux") | ||
| 164 | 169 | ||
| 165 | if succ: | 170 | if succ: |
| 166 | self.__save_results() | 171 | self.__save_results() |
| 167 | self.log("Experiment done!") | 172 | self.log("Experiment done!") |
| 168 | 173 | ||
| 169 | 174 | ||
| 170 | def setup(self): | 175 | def setup(self): |
| 171 | self.log("Writing %d proc entries" % len(self.proc_entries)) | 176 | self.log("Writing %d proc entries" % len(self.proc_entries)) |
| 172 | map(methodcaller('write_proc'), self.proc_entries) | 177 | map(methodcaller('write_proc'), self.proc_entries) |
| 173 | 178 | ||
| @@ -185,13 +190,13 @@ class Experiment(object): | |||
| 185 | executable.stdout_file = self.exec_out | 190 | executable.stdout_file = self.exec_out |
| 186 | executable.stderr_file = self.exec_err | 191 | executable.stderr_file = self.exec_err |
| 187 | map(set_out, self.executables) | 192 | map(set_out, self.executables) |
| 188 | 193 | ||
| 189 | time.sleep(4) | 194 | time.sleep(4) |
| 190 | 195 | ||
| 191 | def teardown(self): | 196 | def teardown(self): |
| 192 | self.exec_out.close() | 197 | self.exec_out and self.exec_out.close() |
| 193 | self.exec_err.close() | 198 | self.exec_err and self.exec_err.close() |
| 194 | 199 | ||
| 195 | sleep_time = 5 | 200 | sleep_time = 5 |
| 196 | self.log("Sleeping %d seconds to allow buffer flushing" % sleep_time) | 201 | self.log("Sleeping %d seconds to allow buffer flushing" % sleep_time) |
| 197 | time.sleep(sleep_time) | 202 | time.sleep(sleep_time) |
| @@ -199,6 +204,3 @@ class Experiment(object): | |||
| 199 | self.log("Stopping tracers") | 204 | self.log("Stopping tracers") |
| 200 | map(methodcaller('stop_tracing'), self.tracers) | 205 | map(methodcaller('stop_tracing'), self.tracers) |
| 201 | 206 | ||
| 202 | self.log("Switching to Linux scheduler") | ||
| 203 | litmus_util.switch_scheduler("Linux") | ||
| 204 | |||
