Commit Graph

60 Commits

Author SHA1 Message Date
4707aef45c split out artiq-comtools 2019-11-14 15:21:51 +08:00
4416378d21 frontend: add --version to common tools 2019-11-14 11:42:31 +08:00
3fd6962bd2 use sipyco (#585) 2019-11-10 15:55:17 +08:00
David Nadlinger
64b9a377da master: Factor RIDCounter out into own module, explain worker_db module [nfc]
The docstrings are quite minimal still, but should already
help with navigating the different layers when getting
accustomed with the code base.

RIDCounter was moved to its own module, as it isn't really
related to the other classes (used from master only).
2018-10-14 10:41:32 +08:00
b6ad510007 master: style (NFC) 2017-11-28 08:56:04 +08:00
00efb0ccd2 master: expand --name help 2017-11-28 08:56:04 +08:00
fafabacf97 master: add friendly name 2017-11-28 08:56:04 +08:00
cd757c0f16 generate device database from executable python file 2017-05-18 23:14:55 +08:00
ad85a0cee3 add session manager (#691) 2017-05-15 17:05:22 +08:00
43aad0914e python3.5 -> python3
Many things also work with Python 3.6.
2017-01-30 09:24:43 +08:00
e45c089428 master, dashboard: support applet requests from experiments 2016-09-05 00:53:44 +08:00
03a69ec5b7 scheduler: add check_pause function 2016-06-27 14:37:29 +08:00
10267f39c9 log: use broadcast instead of sync_struct, filter on new messages only (#411) 2016-05-27 23:43:29 -05:00
a53d32c24e master: always expose full set of worker handlers (#368) 2016-04-02 23:05:16 +08:00
2cbe47e26f protocols/pc_rpc: document coroutine methods, support locking 2016-03-22 21:55:06 +08:00
4bf0db32be master: publish repository status 2016-03-18 00:40:17 +08:00
6830703ec6 artiq_master: directly log, explicit imports 2016-02-18 15:35:02 +01:00
0edde9f4d3 master: inform when running 2016-02-18 14:13:40 +01:00
72a993afe0 master: cache last RID. Closes #234 2016-02-15 18:20:50 +01:00
5aa4de8e89 refactor logging and implement in worker 2016-01-26 20:31:42 +01:00
c9da5f4ecb frontend: bind v4 and v6 localhost addresses by default, support multiple bind 2015-12-27 18:03:13 +08:00
5e14afde3e scheduler: use current (last scanned) repo revision instead of HEAD 2015-12-06 19:00:41 +08:00
ea6dcb2743 master: repository -> experiment_db 2015-12-06 18:39:27 +08:00
4166f4e928 frontend: use atexit_register_coroutine in other tools 2015-11-11 16:22:12 +08:00
whitequark
51f04f6311 Explicitly use the python3.5 binary everywhere. 2015-11-07 13:39:39 +03:00
2c77c80b4f master: expose more scheduler APIs to the experiments 2015-10-30 13:41:18 +08:00
cbda753f44 master: TCP server for remote logging 2015-10-16 00:53:35 +08:00
c00bce3967 master,client,gui: logging sources, timestamps, levels 2015-10-14 01:06:57 +08:00
3cec176318 get_ddb -> get_device_db 2015-10-12 19:46:31 +08:00
97accd2540 merge parameters and results into datasets 2015-10-12 17:18:23 +08:00
b3584bc190 language,master,run: support raw access to DDB from experiments. Closes #123 2015-10-04 18:29:39 +08:00
0e3927b01a master: support DDB rescan 2015-10-04 17:38:07 +08:00
c80f0fa07a master: delete head repository checkout on exit 2015-08-08 11:44:19 +08:00
585bb236f8 master: add ddb/pdb args 2015-08-08 11:13:36 +08:00
7ed8fe57fa Git support 2015-08-07 15:51:56 +08:00
3a06e22b67 master: handle logging while scanning repository 2015-07-23 23:06:15 +08:00
8402f1cdcd master,gui: basic log support 2015-07-22 05:13:50 +08:00
6b36d93cc2 master,client: support repository rescan 2015-07-17 18:55:48 +02:00
9ed4dcd7d1 repository: load experiments in worker, list arguments 2015-07-15 10:54:44 +02:00
32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
9d4073ef36 master: remove simple parameter history 2015-07-09 13:54:38 +02:00
b74b8d5826 Scheduling TNG 2015-05-17 16:11:00 +08:00
bd145bbabc use %(default) in argparse 2015-03-23 20:02:14 +01:00
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
4c280d5fcc master: use a new worker process for each experiment 2015-03-09 16:22:41 +01:00
651ed71b79 master: basic automatic experiment list 2015-02-21 20:34:31 -07:00
6601bebcfe master: make RIDs unique across restarts 2015-02-21 18:41:07 -07:00
965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -07:00
c69c4d5ce9 master: expose scheduler API to experiments 2015-02-19 12:09:11 -07:00
17596f4ad8 tools,frontend: print default ports 2015-02-15 14:58:57 -07:00