Commit Graph

49 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq de30a4b060 master/worker: print short exception info in first log entry of worker error 2015-11-22 23:26:32 +08:00
Sebastien Bourdeauducq 44c0c617f3 master/worker: add ARTIQ version to HDF5 output 2015-11-09 12:32:29 +08:00
Sebastien Bourdeauducq 2c77c80b4f master: expose more scheduler APIs to the experiments 2015-10-30 13:41:18 +08:00
Sebastien Bourdeauducq 1ada15ae5d master: simplify worker/parent RPC 2015-10-28 17:35:57 +08:00
Sebastien Bourdeauducq d13b368a65 build logging into worker 2015-10-20 18:11:50 +08:00
Sebastien Bourdeauducq 60ed88f3d9 worker: separate stdout/stderr for forwarding 2015-10-17 10:22:20 +08:00
Sebastien Bourdeauducq 1d14975bd5 worker: cleaner termination on exception in user code, improve unittest 2015-10-13 01:11:57 +08:00
Sebastien Bourdeauducq 3cec176318 get_ddb -> get_device_db 2015-10-12 19:46:31 +08:00
Sebastien Bourdeauducq 97accd2540 merge parameters and results into datasets 2015-10-12 17:18:23 +08:00
Sebastien Bourdeauducq 139072d402 Graceful experiment termination. Closes #76 2015-10-06 13:50:00 +08:00
Sebastien Bourdeauducq b3584bc190 language,master,run: support raw access to DDB from experiments. Closes #123 2015-10-04 18:29:39 +08:00
Sebastien Bourdeauducq 512bc79484 master: consistent db function argument names 2015-10-04 18:27:44 +08:00
Sebastien Bourdeauducq bb228b00ef gui,language,master: argument groups 2015-08-24 23:46:54 +08:00
Sebastien Bourdeauducq 7ed8fe57fa Git support 2015-08-07 15:51:56 +08:00
Sebastien Bourdeauducq 86fef7b53b master: do not scan experiments starting with '_' 2015-07-29 23:29:07 +08:00
Sebastien Bourdeauducq 8402f1cdcd master,gui: basic log support 2015-07-22 05:13:50 +08:00
Sebastien Bourdeauducq 2576036ba1 language,worker: preserve order of arguments 2015-07-17 19:32:38 +02:00
Sebastien Bourdeauducq 84de2fb28b expid: experiment -> class_name 2015-07-15 11:08:12 +02:00
Sebastien Bourdeauducq 7de56666e3 worker,environment: support scanning of arguments with no default 2015-07-15 10:59:48 +02:00
Sebastien Bourdeauducq 9ed4dcd7d1 repository: load experiments in worker, list arguments 2015-07-15 10:54:44 +02:00
Sebastien Bourdeauducq 32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
Sebastien Bourdeauducq 96a5d73c81 worker: split build stage from prepare 2015-07-09 13:18:12 +02:00
Sebastien Bourdeauducq 737f6d4485 scheduler: support pipeline flush 2015-05-28 17:20:58 +08:00
Sebastien Bourdeauducq fc449509b8 scheduler: pass priority to experiments 2015-05-24 20:37:47 +08:00
Sebastien Bourdeauducq b74b8d5826 Scheduling TNG 2015-05-17 16:11:00 +08:00
Sebastien Bourdeauducq 283695e8aa language/core: integrate watchdogs 2015-04-28 23:23:59 +08:00
Sebastien Bourdeauducq 71b7fe38bc worker_impl: add missing import 2015-04-05 17:50:48 +08:00
Sebastien Bourdeauducq 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
Robert Jördens 43893c6c1d worker_impl: use DBHub as context manager 2015-04-04 20:51:48 -06:00
Sebastien Bourdeauducq 200e20fb39 worker: close devices immediately after run and before analyze 2015-03-20 12:01:34 +01:00
Sebastien Bourdeauducq 2b3641ac0a db,worker: fix realtime result initialization 2015-03-13 15:12:55 +01:00
Sebastien Bourdeauducq 43a05c783d worker: split write_results action 2015-03-11 19:06:46 +01:00
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
Sebastien Bourdeauducq f2134fa4b2 master,worker: split prepare/run/analyze 2015-03-09 23:34:09 +01:00
Sebastien Bourdeauducq 4c280d5fcc master: use a new worker process for each experiment 2015-03-09 16:22:41 +01:00
Sebastien Bourdeauducq d95a9cac9a move realtime result registration into dbh, simplify syntax 2015-03-08 17:27:27 +01:00
Sebastien Bourdeauducq f2e3dfb848 Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +01:00
Sebastien Bourdeauducq 4267e0deab master,artiq_run: simplify unit autodetection 2015-02-21 20:26:58 -07:00
Sebastien Bourdeauducq 965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -07:00
Sebastien Bourdeauducq 1aec6a0462 master: name results 'year-month-day/hour-minute/runid-experiment' 2015-02-21 13:42:26 -07:00
Sebastien Bourdeauducq cc172699ea master: use RID + unit class name for HDF5 filenames 2015-02-20 14:11:55 -07:00
Sebastien Bourdeauducq 65555a3a09 artiq_run,master: introduce __artiq_unit__ attribute to mark and name experiments 2015-02-20 14:01:34 -07:00
Sebastien Bourdeauducq 0dd5692c32 master,run: pass run_params to experiment 2015-02-19 20:05:12 -07:00
Sebastien Bourdeauducq 4d21b78314 master,client,gui: factor timeout into run_params 2015-02-19 20:03:55 -07:00
Sebastien Bourdeauducq c69c4d5ce9 master: expose scheduler API to experiments 2015-02-19 12:09:11 -07:00
Sebastien Bourdeauducq 9ffc370416 master,run: automatically call analyze function 2015-02-19 09:40:15 -07:00
Sebastien Bourdeauducq af79392918 master: basic dumping of results to HDF5 2015-02-04 18:37:57 +08:00
Sebastien Bourdeauducq 3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
Sebastien Bourdeauducq 070788a680 separate master modules 2015-01-14 12:16:49 +08:00