diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-22 15:32:12 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-22 15:32:12 -0400 |
commit | 25ccdb0cbc6b959b1f96c89b8bce91963cb67b4c (patch) | |
tree | dcaeb7d85f3dcc0f2afbb53d11c512c71fb712ab /run/executable | |
parent | fbd1df6f63eb551b99f71330d2370c570ff323f5 (diff) |
Improved robustness of run_exps.py execution.
Thanks to bcw and gelliott for debugging and ideas.
* Print out experiment number and total experiments when starting experiments.
* Only sleep and re-release tasks if tasks are waiting to release.
* Fail experiment with verbose messages if any tasks fail before becoming ready
to release.
* When waiting for tasks to become ready for release, reset the waiting time
whenever a new task (or task(s)) become ready.
* Start regular tracers BEFORE the plugin switch to log data from the switch.
* Check the number of running tasks AFTER trying to switch the linux scheduler.
This gives plugin deactivate code the opportunity to kill these tasks.
* If an invalid executable is specified in the schedule file, fail before
attempting to run the experiment and print out the problem.
* Propogate exceptions up from experiment failures instead of creating
ExperimentFailed exceptions.
This commit also made clock-frequency automatically ignored by parse_exps.py.
The value of this would change by +- a Mhz between experiments, ruining graphs.
Diffstat (limited to 'run/executable')
-rw-r--r-- | run/executable/executable.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/run/executable/executable.py b/run/executable/executable.py index e6f2003..a2426f1 100644 --- a/run/executable/executable.py +++ b/run/executable/executable.py | |||
@@ -59,6 +59,9 @@ class Executable(object): | |||
59 | def interrupt(self): | 59 | def interrupt(self): |
60 | self.sp.send_signal(signal.SIGINT) | 60 | self.sp.send_signal(signal.SIGINT) |
61 | 61 | ||
62 | def poll(self): | ||
63 | return self.sp.poll() | ||
64 | |||
62 | def terminate(self): | 65 | def terminate(self): |
63 | '''Send the terminate signal to the binary.''' | 66 | '''Send the terminate signal to the binary.''' |
64 | self.sp.terminate() | 67 | self.sp.terminate() |