forked from M-Labs/artiq
1
0
Fork 0
A leading-edge control system for quantum information experiments
Go to file
Sebastien Bourdeauducq d5795fd619 master: watchdog support
Introduces a watchdog context manager to use in the experiment code that
terminates the process with an error if it times out. The syntax is:

with self.scheduler.watchdog(20*s):
   ...

Watchdogs timers are implemented by the master process (and the worker
communicates the necessary information about them) so that they can be
enforced even if the worker crashes. They can be nested arbitrarily.
During yields, all watchdog timers for the yielding worker are
suspended [TODO]. Setting up watchdogs is not supported in kernels,
however, a kernel can be called within watchdog contexts (and terminating
the worker will terminate the kernel [TODO]).

It is possible to implement a heartbeat mechanism using a watchdog, e.g.:

for i in range(...):
    with self.scheduler.watchdog(...):
        ....

Crashes/freezes within the iterator or the loop management would not be
detected, but they should be rare enough.
2015-03-11 16:43:14 +01:00
.travis travis: refactor get-misoc.sh 2015-02-05 22:50:55 -07:00
artiq master: watchdog support 2015-03-11 16:43:14 +01:00
benchmarks Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +01:00
conda frontend: remove lda_client (use artiq_rpctool instead) 2015-02-12 09:34:17 +08:00
doc Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +01:00
examples move realtime result registration into dbh, simplify syntax 2015-03-08 17:27:27 +01:00
patches/llvmlite switch to llvmlite 2014-12-05 17:05:43 +08:00
soc artiqlib -> artiq.gateware 2015-03-08 11:00:24 +01:00
.gitignore master: basic automatic experiment list 2015-02-21 20:34:31 -07:00
.travis.yml initial kc705 support 2015-02-26 21:50:52 -07:00
README.rst README: coveralls badge needs branch name 2015-02-05 03:44:57 -07:00
setup.py add Thorlabs T-Cube NDSP 2015-03-04 14:30:49 +00:00

README.rst

.. image:: doc/logo/artiq.png
.. image:: https://travis-ci.org/m-labs/artiq.svg
    :target: https://travis-ci.org/m-labs/artiq
.. image:: https://coveralls.io/repos/m-labs/artiq/badge.svg?branch=master
    :target: https://coveralls.io/r/m-labs/artiq?branch=master

ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a
next-generation control system for quantum information experiments. It is
being developed in partnership with the Ion Storage Group at NIST, and its
applicability reaches beyond ion trapping.

The system features a high-level programming language that helps describing
complex experiments, which is compiled and executed on dedicated hardware with
nanosecond timing resolution and sub-microsecond latency.

Technologies employed include Python, Migen, MiSoC/mor1kx, LLVM and llvmlite.

ARTIQ is licensed under 3-clause BSD.

Website:
http://m-labs.hk/artiq