This repository was archived by the owner on Apr 24, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
How does ... work?
Mingyu Fan edited this page Oct 13, 2021
·
1 revision
Scheduler keeps queues of experiments. An experiment can be submitted through one of the following ways:
- Through the command line
artiq_runargument (artiq.frontend.artiq_run): It seems that it does not support pipelines or priorities. This does not go through the actual scheduler, and is likely only useful for fast code testing. Following discussion does not consider this option. - Through the
schedulerdevice in an experiment (artiq.master.worker_impl.Scheduler). This is a wrapper on the actual scheduler for use in an experiment. - Through a connection to the actual scheduler (artiq.master.scheduler.Scheduler). The experiment explorer in
artiq_dashboarduses this scheduler. The function to call issubmit.
When submitting an experiment to the scheduler, it queues a Run in a RunPool of a Pipeline (all of them in artiq.master.scheduler). Each Run has a Worker (artiq.master.worker.Worker). Actions (build, prepare, run, analyze) in the Worker is called when appropriate. These Worker actions calls the corresponding actions in artiq.master.worker_impl.main through sicopy.pipe_ipc.AsyncioParentComm and sicopy.pipe_ipc.ChildComm. worker_impl actually builds the experiment and calls the corresponding actions in the experiment.