A leading-edge control system for quantum information experiments
Go to file
whitequark feed91d8b2 runtime: buffer RPC send packets.
This brings mean RPC time from ~45ms to ~2ms.

The cause of the slowness without buffering is, primarily, that lwip
is severely pessimized by small writes, whether with Nagle on or off.
(In fact, disabling Nagle makes it function *better* on many small
writes, which begs the question of what's the point of having Nagle
there in the first place.) In practical terms, the slowness appears
only when writing a 4-byte buffer (the synchronization segment);
writing buffers of other sizes does not trigger the problem.

This all is extremely confusing and the fix is partly palliative,
but since it seems to work reliably and we're migrating off lwip
I think it is unwise to spend any more time debugging this.
2016-11-12 23:06:33 +00:00
artiq runtime: buffer RPC send packets. 2016-11-12 23:06:33 +00:00
conda conda: bump llvmlite-artiq dep. 2016-11-12 13:58:00 +00:00
doc doc: clarify kernel_invariant doc (fixes #609). 2016-11-09 14:59:57 +00:00
.gitattributes use versioneer 2015-11-09 11:33:38 +08:00
.gitignore test_h5types: use in-memory files 2016-04-05 17:18:15 +08:00
.gitmodules savannah keeps breaking, use our lwip mirror 2016-02-22 22:51:26 +08:00
CONTRIBUTING.rst CONTRIBUTING: bug reporting information 2016-02-20 11:25:21 +01:00
LICENSE update copyright/license 2015-09-05 15:50:34 -06:00
MANIFEST.in packaging: include runtime.rs in MANIFEST. 2016-10-07 07:53:38 +00:00
README.rst README: GPLv3+ 2016-09-15 09:51:33 -04:00
RELEASE_NOTES.rst master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
RELEASING.rst README: DOI/citation format 2016-05-11 15:23:28 +02:00
setup.cfg versioneer: remote tag_prefix = v 2016-01-18 21:28:09 -07:00
setup.py setup: remove paramiko dependency (optional and developer-only) 2016-11-11 11:05:37 +08:00
versioneer.py update versioneer 2015-11-09 12:19:01 +08:00

.. Always keep doc/manual/introduction.rst synchronized with this file, with the exception of the logo.

.. Absolute so that it works on github and on pypi
.. image:: https://raw.githubusercontent.com/m-labs/artiq/master/doc/logo/artiq.png
  :target: https://m-labs.hk/artiq

ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is the next-generation control system for quantum information experiments.
It is developed by `M-Labs <https://m-labs.hk>`_ for and in partnership with the `Ion Storage Group at NIST <http://www.nist.gov/pml/div688/grp10/index.cfm>`_ as free software.
It is offered to the entire research community as a solution equally applicable to other challenging control tasks outside the field of 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. It includes graphical user interfaces to parametrize and schedule experiments and to visualize and explore the results.

ARTIQ uses FPGA hardware to perform its time-critical tasks.
It is designed to be portable to hardware platforms from different vendors and FPGA manufacturers.
Currently, one configuration of a `low-cost open hardware FPGA board <http://pipistrello.saanlima.com/>`_ and several different configurations of a `high-end FPGA evaluation kit <http://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.html>`_ are used and supported.
Any of these FPGA platforms can be combined with any number of additional peripherals, either already accessible from ARTIQ or made accessible with little effort.

Custom hardware components with widely extended capabilities and advanced support for scalable and fully distributed real-time control of experiments `are being designed <https://github.com/m-labs/artiq-hardware>`_.

ARTIQ and its dependencies are available in the form of `conda packages <https://conda.anaconda.org/m-labs/label/main>`_ for both Linux and Windows.
Packages containing pre-compiled binary images to be loaded onto the hardware platforms are supplied for each configuration.
Like any open source software ARTIQ can equally be built and installed directly from `source <https://github.com/m-labs/artiq>`_.

ARTIQ is supported by M-Labs and developed openly.
Components, features, fixes, improvements, and extensions are funded by and developed for the partnering research groups.

Technologies employed include `Python <https://www.python.org/>`_, `Migen <https://github.com/m-labs/migen>`_, `MiSoC <https://github.com/m-labs/misoc>`_/`mor1kx <https://github.com/openrisc/mor1kx>`_, `LLVM <http://llvm.org/>`_/`llvmlite <https://github.com/numba/llvmlite>`_, and `Qt5 <http://www.qt.io/>`_.

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

`Cite ARTIQ <http://dx.doi.org/10.5281/zenodo.51303>`_ as ``Bourdeauducq, Sébastien et al. (2016). ARTIQ 1.0. Zenodo. 10.5281/zenodo.51303``.

Copyright (C) 2014-2016 M-Labs Limited.
Licensed under GNU GPL version 3 or any later version.