Commit Graph

109 Commits

Author SHA1 Message Date
Egor Savkin e80442811e
worker_impl: do not write results without rid (#2020) 2022-12-09 16:18:28 +08:00
Nico Pulido 88c5109627 language: check_unprocessed_arguments after constructing experiment
Signed-off-by: Nico Pulido-Mateo <pulido@iqo.uni-hannover.de>
2022-11-27 02:29:57 +00:00
kk1050 7aa6104872
Add method to check if termination is requested (#811, #1932)
Co-authored-by: kk105 <kkl@m-kabs.hk>
2022-07-07 17:01:34 +08:00
David Nadlinger 32db6ff978
Allow experiments to specify a custom argument editor UI (#1916)
On the master/EnvExperiment side, the only addition is an optional
property `argument_ui` that is made accessible to the dashboard, e.g.

    class Example(EnvExperiment):
        argument_ui = "ndscan"
        def build(self):
           …

Clients – primarily artiq_dashboard, but in principle e.g. a
command-line UI could do the same – can then compare the value to a
list of well-known names and prefer any matching custom UI handlers.

On the dashboard side, this commit adds the mechanism to register
a custom argument editor for a given argument_ui string, i.e. the
widget that displays the parameter values within the wider
experiment UI shell with the submit button, pipeline parameters, and
so on. The registry remains empty by default and would be filled by
out-of-tree plugins such as ndscan.

The UI state readback is implemented somewhat defensively to avoid
needless disruptions to users when upgrading.
2022-06-18 15:55:13 +08:00
Sebastien Bourdeauducq f89275b02a master: fix compiler access to source code with submit-by-content 2022-03-20 18:08:04 +08:00
Sebastien Bourdeauducq 80d412a8bf support submitting experiments by content 2022-03-20 12:58:55 +08:00
Etienne Wodey 3cd96a951a master: refactor experiments enumeration, use tools.get_experiment
Signed-off-by: Etienne Wodey <wodey@iqo.uni-hannover.de>
2021-02-13 10:06:12 +08:00
Drew 48a1c305c1 master: fix DeprecationWarning on logger.warn
Resolves error message shown.

The following error message is shown when worker_impl.py:199 is run: 

```
WARNING:worker(RID,EXPERIMENT):py.warnings:/nix/store/77sw4p03cb7rdayx86agi4yqxh5wq46b-python3.7-artiq-5.7141.1b68906/lib/python3.7/site-packages/artiq/master/worker_impl.py:199: DeprecationWarning: The 'warn' function is deprecated, use 'warning' instead
  logging.warn(message)
```
2021-02-10 15:27:22 +08:00
David Nadlinger 7955b63b00 master: Always write results to HDF5 once run stage is reached
Previously, a significant risk of losing experimental results would
be associated with long-running experiments, as any stray exceptions
while run()ing the experiment – for instance, due to infrequent
network glitches or hardware reliability issue – would cause no
HDF5 file to be written. This was especially troublesome as long
experiments would suffer from a higher probability of unanticipated
failures, while at the same time being more costly to re-take in
terms of wall-clock time.

Unanticipated uncaught exceptions like that were enough of an issue
that several Oxford codebases had come up with their own half-baked
mitigation strategies, from swallowing all exceptions in run() by
convention, to always broadcasting all results to uniquely named
datasets such that the partial results could be recovered and written
to HDF5 by manually run recovery experiments.

This commit addresses the problem at its source, changing the worker
behaviour such that an HDF5 file is always written as soon as run()
starts.
2020-06-18 17:47:26 +01:00
David Nadlinger d87042597a master/worker_impl: Factor out "completed" message sending [nfc]
Just reduces the visual complexity/potential for typos a bit, and
we already have put_exception_report().
2020-06-18 01:30:46 +01:00
Sebastien Bourdeauducq 3fd6962bd2 use sipyco (#585) 2019-11-10 15:55:17 +08:00
Charles Baynham e50a6d5aaf worker_impy: ignore newline at start of experiment docstring 2019-09-20 22:10:49 +08:00
Chris Ballance 8659c769cb master/language: add methods to set experiment pipeline/priority/flush defaults 2019-03-12 10:54:15 +01:00
David Nadlinger e3cfbfed06 master: Add minimal docstring to worker_impl [nfc] 2018-10-14 10:41:32 +08:00
Sebastien Bourdeauducq 0b4d06c7a9 worker: keep sys.modules untouched until the end of examine() 2018-05-02 12:50:37 +08:00
Sebastien Bourdeauducq 8079aa6d20 worker: python docs recommend not replacing sys.modules 2018-05-02 12:48:50 +08:00
Sebastien Bourdeauducq 8c69d939fb worker: restore sys.modules in examine() (#976) 2018-05-02 12:32:35 +08:00
Chris Ballance cc289dd3a0 master: store run_time and start_time as doubles 2017-08-03 10:41:57 +01:00
Chris Ballance 223501f811 master: use epoch time for timestamps (closes #726) 2017-08-03 10:30:31 +01:00
Chris Ballance 8ebb33c05c master: record time run() is called 2017-04-26 23:36:19 +08:00
Sebastien Bourdeauducq 432c6b99e2 master: still save results when analyze fails. Closes #684 2017-03-27 17:57:02 +08:00
Chris Ballance 639066c6d8 Add tooltips to experiment arguments 2017-02-03 17:53:40 +08:00
Sebastien Bourdeauducq 780d6d152c worker: fix handling of archive parameter during dataset get in examine 2017-01-07 16:20:17 +01:00
Sebastien Bourdeauducq 69d96b0158 master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
Sebastien Bourdeauducq 1908339d4e scheduler: default submission arguments, closes #577 2016-10-18 17:11:06 +08:00
Sebastien Bourdeauducq e45c089428 master, dashboard: support applet requests from experiments 2016-09-05 00:53:44 +08:00
Sebastien Bourdeauducq 84f4725015 cache source on import of modules that may contain kernels. Closes #416 2016-08-06 12:01:49 +08:00
Robert Jördens 9ca27e6d7f worker_impl: style 2016-07-09 16:58:19 +02:00
Robert Jördens cfb9fb808c worker: also return DummyDevice from ExamineDeviceMgr 2016-07-09 16:53:28 +02:00
Sebastien Bourdeauducq 03a69ec5b7 scheduler: add check_pause function 2016-06-27 14:37:29 +08:00
Sebastien Bourdeauducq eb359ce50b Revert "master/worker: pause/resume devices"
This reverts commit 437b37b158.
2016-06-11 10:11:11 -06:00
Sebastien Bourdeauducq c50555e11c worker: use unix time for HDF5 start_time 2016-05-03 21:29:54 +08:00
Sebastien Bourdeauducq caf774579a environment: refactor 2016-04-16 19:31:07 +08:00
Sebastien Bourdeauducq 12a8c76df9 environment,worker: remove enable_processors 2016-04-16 14:21:01 +08:00
Sebastien Bourdeauducq 848c86e8a4 master: group results by hour, not by minute 2016-04-15 01:13:53 +08:00
Sebastien Bourdeauducq 437b37b158 master/worker: pause/resume devices 2016-04-12 15:45:53 +08:00
Robert Jördens 30d557a4f8 worker: run experiment in output directory 2016-04-08 10:53:13 +08:00
Robert Jördens 1ae8b8ffd1 worker_impl: save expid, rid, start_time 2016-04-08 10:21:53 +08:00
Robert Jördens 4759ea337b worker_impl: style 2016-04-05 17:22:16 +08:00
Robert Jördens 05c61465e0 worker: trust that h5py encodes strings 2016-04-05 17:18:15 +08:00
Robert Jördens 4e7b004a4e worker, hdf5: move datasets to subgroup 2016-04-05 17:17:18 +08:00
Sebastien Bourdeauducq aa61c29efb transfer Python builtin exceptions over pc_rpc and master/worker 2016-04-04 22:02:42 +08:00
Sebastien Bourdeauducq 774ecceaba master/worker_impl: use ParentDatasetDB in examine mode. Closes #368 2016-04-02 23:06:14 +08:00
Sebastien Bourdeauducq ca4e6e03fa master/worker: use only first line in short_exc_info 2016-03-25 19:43:12 +08:00
Sebastien Bourdeauducq dda0e0846c worker: print core device tracebacks. Closes #292 2016-02-25 01:25:26 +08:00
Sebastien Bourdeauducq 251aed047f worker: do not print redundant exception information 2016-02-25 01:10:31 +08:00
Sebastien Bourdeauducq be5162d60f worker: restore short exception info in first line of log 2016-01-26 22:07:54 +01:00
Sebastien Bourdeauducq 3cf67afeb1 generalize multiline logging to remote logs and controllers 2016-01-26 21:59:37 +01:00
Sebastien Bourdeauducq 1fed38a8dc worker: use MultilineFormatter 2016-01-26 21:30:28 +01:00
Sebastien Bourdeauducq a583a923d8 worker: use pipe_ipc (no log) 2016-01-26 14:59:36 +01:00