-
Notifications
You must be signed in to change notification settings - Fork 201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve scheduling by interleaving setup and teardown of an experiment #2560
Comments
What do you expect? The experiment needs to be prepared before it can run. If you have two different experiments then those steps should already run in parallel. Precompilation is already supported, please read the manual. |
It could hardly be the other way around. On the other hand, experiment stages are already pipelined (and there can be multiple pipelines at any one time.) See the manual. There is also already support for precompilation. |
Oh, race condition. Excuse me. |
What operating system is this? |
If it really matters (but you should make the case for it, everything is a trade-off against code complexity) it should be possible to create some worker processes in advance. |
Yes, but I can prepare for the next experiment while writing the results for the previous one.
Why not extend it for the same experiments (with different argument overwrites)?
Yes, but how would I tell the scheduler to exploit class Experiment(EnvExperiment):
def prepare(self):
self._run = self.precompile(self.run)
def run(self):
self._run() ?
We are using Linux amd64. Yes, you are right, a starting point is get a better understanding of the actual bottlenecks. I can provide an analysis in a few weeks (also testing the new NAC3 compiler). |
This should already be the case. The next-to-be-run experiment is already |
ARTIQ Feature Request
Problem this request addresses
Scheduling of experiment runs is not efficient, i.e., we "waste" about 1 second between experiment runs.
Describe the solution you'd like
Currently, the scheduler worker runs an experiment run's setup and teardown steps, e.g.,
exp.prepare
andwrite_results
, sequentially.Can we have a worker thread for each stage? Could we also add a precompilation step?
The text was updated successfully, but these errors were encountered: