diff options
| author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-12-19 14:10:55 -0500 |
|---|---|---|
| committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-12-19 14:10:55 -0500 |
| commit | 64e7516c91d9f2f7ca86928f8db00ca29f3eb544 (patch) | |
| tree | b2eacbb36292918b48252b3ae69b7322272590ee /run | |
| parent | 8a5da068956f9f428ed138d2cabbc712918d52e6 (diff) | |
Bug fix
Diffstat (limited to 'run')
| -rw-r--r-- | run/executable/executable.py | 3 | ||||
| -rw-r--r-- | run/experiment.py | 21 |
2 files changed, 14 insertions, 10 deletions
diff --git a/run/executable/executable.py b/run/executable/executable.py index 628f711..bc8edd7 100644 --- a/run/executable/executable.py +++ b/run/executable/executable.py | |||
| @@ -16,7 +16,7 @@ class Executable(object): | |||
| 16 | if extra_args is None: | 16 | if extra_args is None: |
| 17 | self.extra_args = None | 17 | self.extra_args = None |
| 18 | else: | 18 | else: |
| 19 | self.extra_args = list(extra_args) # make a duplicate | 19 | self.extra_args = [str(a) for a in list(extra_args)] # make a duplicate |
| 20 | 20 | ||
| 21 | if not is_executable(self.exec_file): | 21 | if not is_executable(self.exec_file): |
| 22 | raise Exception("Not executable ? : %s" % self.exec_file) | 22 | raise Exception("Not executable ? : %s" % self.exec_file) |
| @@ -44,6 +44,7 @@ class Executable(object): | |||
| 44 | return full_command | 44 | return full_command |
| 45 | 45 | ||
| 46 | def __str__(self): | 46 | def __str__(self): |
| 47 | print("Full command: %s" % self.__get_full_command()) | ||
| 47 | return " ".join(self.__get_full_command()) | 48 | return " ".join(self.__get_full_command()) |
| 48 | 49 | ||
| 49 | def execute(self): | 50 | def execute(self): |
diff --git a/run/experiment.py b/run/experiment.py index 4bd47c6..ee1438d 100644 --- a/run/experiment.py +++ b/run/experiment.py | |||
| @@ -92,19 +92,19 @@ class Experiment(object): | |||
| 92 | map(assign_cwd, self.executables) | 92 | map(assign_cwd, self.executables) |
| 93 | 93 | ||
| 94 | def __run_tasks(self): | 94 | def __run_tasks(self): |
| 95 | exec_pause = 0.3 | 95 | self.log("Starting the programs") |
| 96 | self.log("Starting the programs over ({0} seconds)".format( | ||
| 97 | len(self.executables) * exec_pause)) | ||
| 98 | for e in self.executables: | 96 | for e in self.executables: |
| 99 | try: | 97 | try: |
| 100 | e.execute() | 98 | e.execute() |
| 101 | except: | 99 | except: |
| 102 | raise Exception("Executable failed: %s" % e) | 100 | raise Exception("Executable failed: %s" % e) |
| 103 | time.sleep(exec_pause) | ||
| 104 | 101 | ||
| 105 | sleep_time = len(self.executables) / litmus_util.num_cpus() | 102 | waiting = litmus_util.waiting_tasks() |
| 106 | self.log("Sleeping for %d seconds before release" % sleep_time) | 103 | |
| 107 | time.sleep(sleep_time) | 104 | if waiting: |
| 105 | sleep_time = len(self.executables) / litmus_util.num_cpus() | ||
| 106 | self.log("Sleeping for %d seconds before release" % sleep_time) | ||
| 107 | time.sleep(sleep_time) | ||
| 108 | 108 | ||
| 109 | # Overhead tracer must be started right after release or overhead | 109 | # Overhead tracer must be started right after release or overhead |
| 110 | # measurements will be full of irrelevant records | 110 | # measurements will be full of irrelevant records |
| @@ -112,8 +112,11 @@ class Experiment(object): | |||
| 112 | self.log("Starting overhead trace") | 112 | self.log("Starting overhead trace") |
| 113 | self.overhead_trace.start_tracing() | 113 | self.overhead_trace.start_tracing() |
| 114 | 114 | ||
| 115 | self.log("Releasing %d tasks" % len(self.executables)) | 115 | if waiting: |
| 116 | released = litmus_util.release_tasks() | 116 | self.log("Releasing %d tasks" % len(self.executables)) |
| 117 | released = litmus_util.release_tasks() | ||
| 118 | else: | ||
| 119 | released = len(self.executables) | ||
| 117 | 120 | ||
| 118 | ret = True | 121 | ret = True |
| 119 | if released != len(self.executables): | 122 | if released != len(self.executables): |
