Commit Graph

84 Commits

Author SHA1 Message Date
8402f1cdcd master,gui: basic log support 2015-07-22 05:13:50 +08:00
2576036ba1 language,worker: preserve order of arguments 2015-07-17 19:32:38 +02:00
84de2fb28b expid: experiment -> class_name 2015-07-15 11:08:12 +02:00
7de56666e3 worker,environment: support scanning of arguments with no default 2015-07-15 10:59: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
96a5d73c81 worker: split build stage from prepare 2015-07-09 13:18:12 +02:00
737f6d4485 scheduler: support pipeline flush 2015-05-28 17:20:58 +08:00
fc449509b8 scheduler: pass priority to experiments 2015-05-24 20:37:47 +08:00
b74b8d5826 Scheduling TNG 2015-05-17 16:11:00 +08:00
283695e8aa language/core: integrate watchdogs 2015-04-28 23:23:59 +08:00
71b7fe38bc worker_impl: add missing import 2015-04-05 17:50:48 +08:00
9b46bc623a dbhub: do not use as context manager, turn close exceptions into warnings, do not close devices early in worker 2015-04-05 17:49:41 +08:00
43893c6c1d worker_impl: use DBHub as context manager 2015-04-04 20:51:48 -06:00
200e20fb39 worker: close devices immediately after run and before analyze 2015-03-20 12:01:34 +01:00
2b3641ac0a db,worker: fix realtime result initialization 2015-03-13 15:12:55 +01:00
43a05c783d worker: split write_results action 2015-03-11 19:06:46 +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
f2134fa4b2 master,worker: split prepare/run/analyze 2015-03-09 23:34:09 +01:00
4c280d5fcc master: use a new worker process for each experiment 2015-03-09 16:22:41 +01:00
d95a9cac9a move realtime result registration into dbh, simplify syntax 2015-03-08 17:27:27 +01:00
f2e3dfb848 Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +01:00
4267e0deab master,artiq_run: simplify unit autodetection 2015-02-21 20:26:58 -07:00
965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -07:00
1aec6a0462 master: name results 'year-month-day/hour-minute/runid-experiment' 2015-02-21 13:42:26 -07:00
cc172699ea master: use RID + unit class name for HDF5 filenames 2015-02-20 14:11:55 -07:00
65555a3a09 artiq_run,master: introduce __artiq_unit__ attribute to mark and name experiments 2015-02-20 14:01:34 -07:00
0dd5692c32 master,run: pass run_params to experiment 2015-02-19 20:05:12 -07:00
4d21b78314 master,client,gui: factor timeout into run_params 2015-02-19 20:03:55 -07:00
c69c4d5ce9 master: expose scheduler API to experiments 2015-02-19 12:09:11 -07:00
9ffc370416 master,run: automatically call analyze function 2015-02-19 09:40:15 -07:00
af79392918 master: basic dumping of results to HDF5 2015-02-04 18:37:57 +08:00
3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
070788a680 separate master modules 2015-01-14 12:16:49 +08:00