forked from M-Labs/artiq
Sebastien Bourdeauducq
d5795fd619
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. |
||
---|---|---|
.travis | ||
artiq | ||
benchmarks | ||
conda | ||
doc | ||
examples | ||
patches/llvmlite | ||
soc | ||
.gitignore | ||
.travis.yml | ||
README.rst | ||
setup.py |
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