Commit Graph

211 Commits

Author SHA1 Message Date
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
7770ab64f2 worker: factor timeouts 2015-07-14 23:43:08 +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
c71fe29792 simplify unit system and use floats by default 2015-06-26 16:34:37 +02:00
9f9079589e gui: send monitor requests to core device 2015-06-05 14:52:41 +08:00
a6a476593e worker: wait for process termination
This prevents stray SIGCHLDs from crashing the program e.g. if the asyncio event loop is closed before the process actually terminates.
2015-06-05 00:37:26 +08:00
c843c353d7 worker: remove useless process wait 2015-06-05 00:05:38 +08:00
Yann Sionneau
60bdf74137 tests: use try/finally to close event loop + wait for process to die after killing it 2015-06-04 13:40:13 +02:00
78f9268277 worker: add note about correct use of close() 2015-06-04 11:30:34 +08:00
aa242f7c66 scheduler: simplify priority policy
Remove overdueness. User must submit calibration experiments with higher priority values for them to take precedence.
2015-05-28 18:24:45 +08:00
b0f8141018 scheduler: cancel flush when run is cancelled 2015-05-28 17:48:33 +08:00
e752e57fa5 scheduler: do not duplicate 'run terminated' information 2015-05-28 17:37:08 +08:00
737f6d4485 scheduler: support pipeline flush 2015-05-28 17:20:58 +08:00
Yann Sionneau
4bf7875b87 flash_storage: refactor + unit tests + artiq_coreconfig.py CLI + doc 2015-05-27 18:06:12 +08:00
fc449509b8 scheduler: pass priority to experiments 2015-05-24 20:37:47 +08:00
a21373841c scheduler: catch worker exceptions in prepare and analyze stages 2015-05-24 20:23:49 +08:00
d6ced1c780 scheduler: support priorities 2015-05-24 01:09:22 +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
ca89b6d0ed worker_db: support read-only mode 2015-04-07 15:40:57 +08:00
3257275782 worker_db: get_logger -> getLogger 2015-04-05 18:02:07 +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
7b86138fd2 DBHub: make it a 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
ec1d082730 remove timeout from run_params (to be replaced by a better mechanism) 2015-03-09 10:51:32 +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
651ed71b79 master: basic automatic experiment list 2015-02-21 20:34:31 -07:00
4267e0deab master,artiq_run: simplify unit autodetection 2015-02-21 20:26:58 -07:00
6601bebcfe master: make RIDs unique across restarts 2015-02-21 18:41:07 -07:00
ceb02b42cb master: use full year in result folder name 2015-02-21 18:34:31 -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
39dfbb4162 ddb: support for best effort RPC client 2015-02-12 00:54:54 +08:00
2f06574381 ddb: controller support 2015-02-05 22:53:31 +08:00
af79392918 master: basic dumping of results to HDF5 2015-02-04 18:37:57 +08:00
2fbe22e15e master,client: support changing real-time results group 2015-01-30 20:36:54 +08:00
45c0e2874f master/db: exclude Notifier attributes from kernel attr init 2015-01-29 23:48:39 +08:00
7d6b93d8eb master/db: fix realtime data lookup 2015-01-29 21:45:24 +08:00
db3114f79b serve GUI and Glade file from master 2015-01-26 23:37:33 +08:00
47aa634ab5 replace periodic schedule with timed schedule 2015-01-23 00:23:00 +08:00
3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
5df8ffe08e master: cleaner shutdown 2015-01-15 11:07:55 +08:00
95ee6a4951 gui: beginning of realtime plotting 2015-01-14 22:22:33 +08:00
070788a680 separate master modules 2015-01-14 12:16:49 +08:00