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
7770ab64f2
worker: factor timeouts
2015-07-14 23:43:08 +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
c71fe29792
simplify unit system and use floats by default
2015-06-26 16:34:37 +02:00
Sebastien Bourdeauducq
9f9079589e
gui: send monitor requests to core device
2015-06-05 14:52:41 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
78f9268277
worker: add note about correct use of close()
2015-06-04 11:30:34 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
b0f8141018
scheduler: cancel flush when run is cancelled
2015-05-28 17:48:33 +08:00
Sebastien Bourdeauducq
e752e57fa5
scheduler: do not duplicate 'run terminated' information
2015-05-28 17:37:08 +08:00
Sebastien Bourdeauducq
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
Sebastien Bourdeauducq
fc449509b8
scheduler: pass priority to experiments
2015-05-24 20:37:47 +08:00
Sebastien Bourdeauducq
a21373841c
scheduler: catch worker exceptions in prepare and analyze stages
2015-05-24 20:23:49 +08:00
Sebastien Bourdeauducq
d6ced1c780
scheduler: support priorities
2015-05-24 01:09:22 +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
ca89b6d0ed
worker_db: support read-only mode
2015-04-07 15:40:57 +08:00
Sebastien Bourdeauducq
3257275782
worker_db: get_logger -> getLogger
2015-04-05 18:02:07 +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
Robert Jördens
7b86138fd2
DBHub: make it a 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
ec1d082730
remove timeout from run_params (to be replaced by a better mechanism)
2015-03-09 10:51:32 +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
651ed71b79
master: basic automatic experiment list
2015-02-21 20:34:31 -07:00
Sebastien Bourdeauducq
4267e0deab
master,artiq_run: simplify unit autodetection
2015-02-21 20:26:58 -07:00
Sebastien Bourdeauducq
6601bebcfe
master: make RIDs unique across restarts
2015-02-21 18:41:07 -07:00
Sebastien Bourdeauducq
ceb02b42cb
master: use full year in result folder name
2015-02-21 18:34:31 -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
39dfbb4162
ddb: support for best effort RPC client
2015-02-12 00:54:54 +08:00
Sebastien Bourdeauducq
2f06574381
ddb: controller support
2015-02-05 22:53:31 +08:00
Sebastien Bourdeauducq
af79392918
master: basic dumping of results to HDF5
2015-02-04 18:37:57 +08:00
Sebastien Bourdeauducq
2fbe22e15e
master,client: support changing real-time results group
2015-01-30 20:36:54 +08:00
Sebastien Bourdeauducq
45c0e2874f
master/db: exclude Notifier attributes from kernel attr init
2015-01-29 23:48:39 +08:00
Sebastien Bourdeauducq
7d6b93d8eb
master/db: fix realtime data lookup
2015-01-29 21:45:24 +08:00
Sebastien Bourdeauducq
db3114f79b
serve GUI and Glade file from master
2015-01-26 23:37:33 +08:00
Sebastien Bourdeauducq
47aa634ab5
replace periodic schedule with timed schedule
2015-01-23 00:23:00 +08:00
Sebastien Bourdeauducq
3e22fe86b5
reorganize files as per discussion with Robert
2015-01-17 19:38:20 +08:00
Sebastien Bourdeauducq
5df8ffe08e
master: cleaner shutdown
2015-01-15 11:07:55 +08:00
Sebastien Bourdeauducq
95ee6a4951
gui: beginning of realtime plotting
2015-01-14 22:22:33 +08:00
Sebastien Bourdeauducq
070788a680
separate master modules
2015-01-14 12:16:49 +08:00