forked from m-labs/artiq
-
Notifications
You must be signed in to change notification settings - Fork 1
How does ... work?
Mingyu Fan edited this page Oct 7, 2021
·
1 revision
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 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.