Main front-end tools

These are the top-level commands used to run and manage ARTIQ experiments. Not all of the ARTIQ front-end is described here (many additional useful commands are presented in this manual in Utilities) but these together comprise the main points of access for using ARTIQ as a system.

artiq.frontend.artiq_run

Local experiment running tool

usage: artiq_run [-h] [--version] [-v] [-q] [--device-db DEVICE_DB]
                 [--dataset-db DATASET_DB] [-c CLASS_NAME] [-o HDF5]
                 FILE [ARGUMENTS ...]

Positional Arguments

FILE

file containing the experiment to run

ARGUMENTS

run arguments

Named Arguments

--version

print the ARTIQ version number

--device-db

device database file (default: ‘’device_db.py’’)

--dataset-db

dataset file (default: ‘’dataset_db.mdb’’)

-c, --class-name

name of the class to run

-o, --hdf5

write results to specified HDF5 file (default: print them)

verbosity

-v, --verbose

increase logging level

-q, --quiet

decrease logging level

artiq.frontend.artiq_master

ARTIQ master

usage: artiq_master [-h] [--version] [--bind BIND] [--no-localhost-bind]
                    [--port-notify PORT_NOTIFY] [--port-control PORT_CONTROL]
                    [--port-logging PORT_LOGGING]
                    [--port-broadcast PORT_BROADCAST] [--device-db DEVICE_DB]
                    [--dataset-db DATASET_DB] [-g] [-r REPOSITORY]
                    [--experiment-subdir EXPERIMENT_SUBDIR] [-v] [-q]
                    [--log-file LOG_FILE]
                    [--log-backup-count LOG_BACKUP_COUNT] [--name NAME]
                    [--log-submissions LOG_SUBMISSIONS]

Named Arguments

--version

print the ARTIQ version number

--name

friendly name, displayed in dashboards to identify master instead of server address

--log-submissions

log experiment submissions to specified file

network server

--bind

additional hostname or IP address to bind to; use ‘*’ to bind to all interfaces (default: [])

--no-localhost-bind

do not implicitly also bind to localhost addresses

--port-notify

TCP port for notifications connections (default: 3250)

--port-control

TCP port for control connections (default: 3251)

--port-logging

TCP port for remote logging connections (default: 1066)

--port-broadcast

TCP port for broadcasts connections (default: 1067)

databases

--device-db

device database file (default: ‘device_db.py’)

--dataset-db

dataset file (default: ‘dataset_db.mdb’)

repository

-g, --git

use the Git repository backend (default: False)

-r, --repository

path to the repository (default: ‘repository’)

--experiment-subdir

path to the experiment folder from the repository root (default: ‘’)

logging

-v, --verbose

increase logging level of the master process

-q, --quiet

decrease logging level of the master process

--log-file

store logs in rotated files; set the base filename

--log-backup-count

number of old log files to keep, or 0 to keep all log files. ‘.<yyyy>-<mm>-<dd>’ is added to the base filename (default: 0)

artiq.frontend.artiq_client

ARTIQ CLI client

usage: artiq_client [-h] [-s SERVER] [--port PORT] [--version] [-v] [-q]
                    {submit,delete,set-dataset,del-dataset,supply-interactive,cancel-interactive,show,scan-devices,scan-repository,ls,terminate}
                    ...

Positional Arguments

action

Possible choices: submit, delete, set-dataset, del-dataset, supply-interactive, cancel-interactive, show, scan-devices, scan-repository, ls, terminate

Named Arguments

-s, --server

hostname or IP of the master to connect to (default: ‘::1’)

--port

TCP port to use to connect to the master (default: None)

--version

print the ARTIQ version number

verbosity

-v, --verbose

increase logging level

-q, --quiet

decrease logging level

Sub-commands

submit

submit an experiment

artiq_client submit [-h] [-p PIPELINE] [-P PRIORITY] [-t TIMED] [-f] [-R]
                    [-r REVISION] [--devarg-override DEVARG_OVERRIDE]
                    [--content] [-c CLASS_NAME]
                    FILE [ARGUMENTS ...]
Positional Arguments
FILE

file containing the experiment to run

ARGUMENTS

run arguments

Named Arguments
-p, --pipeline

pipeline to run the experiment in (default: ‘main’)

-P, --priority

priority (higher value means sooner scheduling, default: 0)

-t, --timed

set a due date for the experiment (default: None)

-f, --flush

flush the pipeline before preparing the experiment

-R, --repository

use the experiment repository

-r, --revision

use a specific repository revision (defaults to head, ignored without -R)

--devarg-override

specify device arguments to override

--content

submit by content

-c, --class-name

name of the class to run

delete

delete an experiment from the schedule

artiq_client delete [-h] [-g] RID
Positional Arguments
RID

run identifier (RID)

Named Arguments
-g

request graceful termination

set-dataset

add or modify a dataset

artiq_client set-dataset [-h] [--unit UNIT] [--scale SCALE]
                         [--precision PRECISION] [-p | -n]
                         NAME VALUE
Positional Arguments
NAME

name of the dataset

VALUE

value in PYON format

Named Arguments
--unit

physical unit of the dataset

--scale

factor to multiply value of dataset in displays

--precision

maximum number of decimals to print in displays

-p, --persist

make the dataset persistent

-n, --no-persist

make the dataset non-persistent

del-dataset

delete a dataset

artiq_client del-dataset [-h] name
Positional Arguments
name

name of the dataset

supply-interactive

supply interactive arguments

artiq_client supply-interactive [-h] RID [ARGUMENTS ...]
Positional Arguments
RID

RID of target experiment

ARGUMENTS

interactive arguments

cancel-interactive

cancel interactive arguments

artiq_client cancel-interactive [-h] RID
Positional Arguments
RID

RID of target experiment

show

show schedule, log, devices or datasets

artiq_client show [-h] WHAT
Positional Arguments
WHAT

Possible choices: schedule, log, ccb, devices, datasets, interactive-args

select object to show: [‘schedule’, ‘log’, ‘ccb’, ‘devices’, ‘datasets’, ‘interactive-args’]

scan-devices

trigger a device database (re)scan

artiq_client scan-devices [-h]

scan-repository

trigger a repository (re)scan

artiq_client scan-repository [-h] [--async] [REVISION]
Positional Arguments
REVISION

use a specific repository revision (defaults to head)

Named Arguments
--async

trigger scan and return immediately

ls

list a directory on the master

artiq_client ls [-h] [directory]
Positional Arguments
directory

terminate

terminate the ARTIQ master

artiq_client terminate [-h]

artiq.frontend.artiq_dashboard

ARTIQ Dashboard

usage: artiq_dashboard [-h] [--version] [-s SERVER]
                       [--port-notify PORT_NOTIFY]
                       [--port-control PORT_CONTROL]
                       [--port-broadcast PORT_BROADCAST] [--db-file DB_FILE]
                       [-p PLUGIN_MODULES]
                       [--analyzer-proxy-timeout ANALYZER_PROXY_TIMEOUT]
                       [--analyzer-proxy-timer ANALYZER_PROXY_TIMER]
                       [--analyzer-proxy-timer-backoff ANALYZER_PROXY_TIMER_BACKOFF]
                       [-v] [-q]

Named Arguments

--version

print the ARTIQ version number

-s, --server

hostname or IP of the master to connect to (default: ‘::1’)

--port-notify

TCP port to connect to for notifications (default: 3250)

--port-control

TCP port to connect to for control (default: 3251)

--port-broadcast

TCP port to connect to for broadcasts (default: 1067)

--db-file

database file for local GUI settings (default: None)

-p, --load-plugin

Python module to load on startup

--analyzer-proxy-timeout

connection timeout to core analyzer proxy (default: 5)

--analyzer-proxy-timer

retry timer to core analyzer proxy (default: 5)

--analyzer-proxy-timer-backoff

retry timer backoff multiplier to core analyzer proxy, (default: 1.1)

verbosity

-v, --verbose

increase logging level

-q, --quiet

decrease logging level

artiq.frontend.artiq_browser

ARTIQ Browser

usage: artiq_browser [-h] [--version] [--db-file DB_FILE]
                     [--browse-root BROWSE_ROOT] [-s SERVER] [--port PORT]
                     [-v] [-q]
                     [SELECT]

Positional Arguments

SELECT

directory to browse or file to load

Named Arguments

--version

print the ARTIQ version number

--db-file

database file for local browser settings (default: None)

--browse-root

root path for directory tree (default ‘’)

-s, --server

hostname or IP of the master to connect to when uploading datasets

--port

TCP port to use to connect to the master

verbosity

-v, --verbose

increase logging level

-q, --quiet

decrease logging level

artiq.frontend.artiq_session

ARTIQ session manager. Automatically runs the master, dashboard and local controller manager on the current machine. The latter requires the artiq-comtools package to be installed.

When supplying arguments to individual front-end tools, use = to avoid ambiguity in argument parsing, e.g.:

artiq_session -m=-g -m=--device-db=alternate_device_db.py -c=-v

and so on.

usage: artiq_session [-h] [--version] [-m M] [-d D] [-c C]

Named Arguments

--version

print the ARTIQ version number

-m

add argument to the master command line

-d

add argument to the dashboard command line

-c

add argument to the controller manager command line

artiq_comtools.artiq_ctlmgr

ARTIQ controller manager. Supplied in the separate package artiq-comtools, which is included with a standard ARTIQ installation but can also be installed standalone, with the intention of making it easier to run controllers and controller managers on machines where a full ARTIQ installation may not be necessary or convenient.

usage: artiq_ctlmgr [-h] [-v] [-q] [-s SERVER] [--port-notify PORT_NOTIFY]
                    [--port-logging PORT_LOGGING]
                    [--retry-master RETRY_MASTER] [--host-filter HOST_FILTER]
                    [--bind BIND] [--no-localhost-bind]
                    [--port-control PORT_CONTROL]

Named Arguments

-s, --server

hostname or IP of the master to connect to

--port-notify

TCP port to connect to for notifications

--port-logging

TCP port to connect to for logging

--retry-master

retry timer for reconnecting to master

--host-filter

IP address of controllers to launch (local address of master connection by default)

verbosity

-v, --verbose

increase logging level

-q, --quiet

decrease logging level

network server

--bind

additional hostname or IP address to bind to; use ‘*’ to bind to all interfaces (default: [])

--no-localhost-bind

do not implicitly also bind to localhost addresses

--port-control

TCP port for control connections (default: 3249)