You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mingyu Fan edited this page Oct 13, 2021
·
1 revision
Notes about how components of ARTIQ work
Scheduler
Scheduler keeps queues of experiments. An experiment can be submitted through one of the following ways:
Through the command line artiq_run argument (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 scheduler device 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_dashboard uses this scheduler. The function to call is submit.
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.