Commit Graph

658 Commits

Author SHA1 Message Date
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
4a7c6954c3 artiq_run: implement mockups of new scheduler API 2015-05-28 17:24:47 +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
5fb86af3a4 gui: support experiment cancellation 2015-05-24 23:20:52 +08:00
e611e17eeb gui: experiment submission 2015-05-24 20:24:07 +08:00
d6ced1c780 scheduler: support priorities 2015-05-24 01:09:22 +08:00
2f910921f5 gui: console -> log 2015-05-24 00:38:30 +08:00
d9c25130e3 gui: add explorer widgets 2015-05-23 01:25:33 +08:00
2570444941 gui: add empty explorer and console docks 2015-05-22 23:30:46 +08:00
ea53ed1af7 gui: switch to Qt 2015-05-22 17:06:31 +08:00
d8917fd94f Merge branch 'master' of github.com:m-labs/artiq 2015-05-17 16:11:16 +08:00
b74b8d5826 Scheduling TNG 2015-05-17 16:11:00 +08:00
Yann Sionneau
e9b166b199 artiq_flash.sh: some cleanup 2015-05-14 11:12:03 +02:00
4048568d8e support kernel handover with coherent time 2015-05-02 23:41:49 +08:00
62669f9ff2 soc: factor timer, kernel CPU and mailbox 2015-05-01 18:51:24 +08:00
109dfab76c frontend: add artiq_mkfs 2015-04-30 20:03:11 +08:00
8a796a6818 artiq_run/ELFRunner: create a core device object (necessary for runtime exception processing) 2015-04-30 10:16:24 +08:00
Zach Smith
5df446ec4b artiq_flash.sh: fix Pipistrello flash proxy filename 2015-04-30 09:24:13 +08:00
86c012924e targets: rename AMP->Top, merge peripherals 2015-04-28 00:18:54 +08:00
938e1c2842 Remove UP support.
The only advantage of UP is to support the Papilio Pro, but that port is also very limited in other ways and the Pipistrello provides a more reasonable platform that also supports AMP.

On the other hand, RPCs on UP are difficult to implement with the session.c protocol system (without an operating system or coroutines), along with many other minor difficulties and maintainance issues. Planned features such as watchdogs in the core device are also difficult on UP.
2015-04-27 20:43:45 +08:00
Yann Sionneau
69388ccc1a pxi6733: add driver and controller 2015-04-21 16:09:55 +08:00
Yann Sionneau
e19f8896f0 artiq_rpctool: document numpy availability in RPC call cmd line arguments 2015-04-21 15:57:29 +08:00
301a0e6447 rpctool: import numpy 2015-04-21 15:57:25 +08:00
Yann Sionneau
52fe66ee4d artiq_flash.sh: improve detection of flash proxy location
Flash proxy is now searched in ~/.migen /usr/local/share/migen
/usr/share/migen and in the directory specified by "-d" argument
or in artiq/binaries/<board_name>/ if "-d" is not specified.
2015-04-17 00:57:16 +08:00
c0213c9f69 artiq_flash.sh: add pipistrello 2015-04-14 22:37:08 -06:00
07b8e1292f artiq_flash: fix stderr redirections 2015-04-11 23:43:33 +08:00
8a2b8fc634 artiq_flash: do not always assume permission problems 2015-04-11 22:54:17 +08:00
Yann Sionneau
8a3be4eca0 artiq_flash: add support for kc705 2015-04-11 22:38:11 +08:00
efd1c24ed7 frontend: add artiq_compile tool to build default experiment 2015-04-07 15:41:32 +08:00
5e046dc5ce artiq_run: move parse_arguments and get_experiment to tools 2015-04-07 13:04:47 +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
0ec7e9a98c artiq_run: fix get_argparser() 2015-04-04 21:17:24 -06:00
1a1afd5410 artiq_run: refactor, support use from within experiments
You can always (under posix) use #!/usr/bin/env artiq_run as
shebang for experiments and make them executable.
Now, you can also do this (portable):

if __name__ == "__main__":
    from artiq.frontend.artiq_run import run
    run()

to make an experiment executable. The CLI options are all inherited.
Also:

* removed --elf: can be inferred from filename
* did some refactoring and cleanup
* use logging for all messages, except the result printing (use -v to get
parameter changes and dummy scheduler actions)
2015-04-04 20:51:48 -06:00
Yann Sionneau
e7be00baa8 Add support for automatic build and upload of dev conda artiq packages to binstar by travis-ci
- SoC+BIOS are also built and integrated in the conda package
- artiq_flash.sh script is embedded to allow flashing ppro board
2015-03-30 19:51:52 +08:00
bd2f6ea9f9 thorlabs_tcube_controller: use simple_network_args 2015-03-25 16:20:08 +01:00
Yann Sionneau
5ca5a3602e novatech409b: cleanup 2015-03-25 16:11:11 +01:00
768fa21488 lda_controller: show default product type 2015-03-23 20:02:36 +01:00
bd145bbabc use %(default) in argparse 2015-03-23 20:02:14 +01:00
Yann Sionneau
91336f974d lda_controller: replace serial argument with device one 2015-03-23 17:02:39 +01:00
Yann Sionneau
2651050c83 Controller cleanups 2015-03-23 17:02:39 +01:00
1b7f71bda9 controllers: consistent device/simulation specification 2015-03-22 00:48:15 +01:00
8cb77b0336 pdq2: rename url parameter to device and require it 2015-03-21 00:33:50 -06:00
200e20fb39 worker: close devices immediately after run and before analyze 2015-03-20 12:01:34 +01:00
577754c38f pdq2: fix argparser 2015-03-19 22:26:12 -06:00
222d0a9d37 pdq2_controller: add dump option 2015-03-19 21:38:46 -06:00
5ab3290ed4 pdq2: add refactored client code 2015-03-19 20:34:29 -06:00
2b3641ac0a db,worker: fix realtime result initialization 2015-03-13 15:12:55 +01:00
5ca4821a29 ctlmgr: use workaround for asyncio.wait_for(process.wait()... Python bug 2015-03-11 16:48:16 +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
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
0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01:00
Yann Sionneau
14c759ff89 add Thorlabs T-Cube NDSP 2015-03-04 14:30:49 +00:00
0abd41a04a pc_rpc: trace support in server 2015-02-27 00:17:11 -07: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
387de11e56 artiq_run: fix import 2015-02-21 20:09:46 -07:00
6601bebcfe master: make RIDs unique across restarts 2015-02-21 18:41:07 -07:00
965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -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
d01ba8e644 artiq_run: provide dummy scheduler API 2015-02-19 12:09:37 -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
656099a331 artiq_run: sort result output alphabetically 2015-02-17 16:12:21 -07:00
8c4fb2d534 novatech409b: add sim mode help 2015-02-16 04:39:41 -07:00
17611e9899 lda_controller: add description 2015-02-15 17:32:08 -07:00
Joe Britton
a3494c57cc add Novatech 409B controller 2015-02-15 17:31:37 -07:00
e196ef9c48 lda_controller: style 2015-02-15 15:00:55 -07:00
17596f4ad8 tools,frontend: print default ports 2015-02-15 14:58:57 -07:00
79a5d8a12a tools,frontend: common network arguments 2015-02-15 14:55:43 -07:00
6d4b9e5fca frontend: remove lda_client (use artiq_rpctool instead) 2015-02-12 09:34:17 +08:00
Yann Sionneau
af4be9a2e2 rpctool: change call syntax 2015-02-12 09:31:04 +08:00
Yann Sionneau
b396f5dd43 pc_rpc: support for method listing, frontend: artiq_rpctool, +fixes by SB 2015-02-12 00:38:30 +08:00
c91705c5d1 ctlmgr: support hostnames in DDB 2015-02-09 20:03:34 +08:00
542e047f5a ctlmgr: clean shutdown 2015-02-08 21:44:49 +08:00
a50c74523f ctlmgr: split command arguments properly 2015-02-08 12:18:57 +08:00
abb7d9f911 ctlmgr: catch create_subprocess_exec errors and retry 2015-02-08 12:15:22 +08:00
96a01efc48 ctlmgr: wait for processes to terminate before starting new ones 2015-02-08 00:59:08 +08:00
e7d85c5b87 ctlmgr: basic working implementation 2015-02-07 23:52:05 +08:00
aba749093b ctlmgr: get local bind address, format commands 2015-02-07 01:14:27 +08:00
f9d3bd107e ctlmgr: retry connection to master, print received ddb 2015-02-06 18:58:54 +08:00
17685d1e98 controller manager skeleton 2015-02-06 12:17:51 +08:00
8df1b03f0f artiq_run: add verbosity config 2015-02-04 19:09:54 +08:00
0e65f71705 artiq_run: HDF5 output support 2015-02-04 18:46:55 +08:00
2f4a83b97a gui: access to parameter DB from GUI files 2015-02-04 16:13:56 +08:00
1b122dd887 sync_struct,gui: refactor Subscriber data distribution to support access to parameter DB from GUI file 2015-02-04 15:06:25 +08:00
186aa7fdb7 style 2015-02-04 14:44:39 +08:00
Yann Sionneau
fc92a66e51 asyncio: Use ProactorEventLoop on Windows 2015-02-03 22:29:03 +08:00
2fbe22e15e master,client: support changing real-time results group 2015-01-30 20:36:54 +08:00
Yann Sionneau
526887140d Set WARNING as default log level + update documentation 2015-01-30 19:04:04 +08:00
9aa7155502 gui: use experiment registry 2015-01-29 19:59:44 +08:00
e7dac4ab43 master: experiment registry 2015-01-29 19:59:16 +08:00
Yann Sionneau
5ba7218cc1 Factorize argparser for debug level 2015-01-29 10:07:12 +08:00
71c5115c11 gui: handle exit in explorer 2015-01-27 23:51:23 +08:00
db3114f79b serve GUI and Glade file from master 2015-01-26 23:37:33 +08:00
8904d963d2 gui: add explorer window + rough prototype of control widgets defined with glade 2015-01-26 19:56:15 +08:00
82330b3c2a gui: save layout 2015-01-23 19:00:09 +08:00
9fb42e4952 doc: use sphinx-argparse 2015-01-23 00:52:13 +08:00
47aa634ab5 replace periodic schedule with timed schedule 2015-01-23 00:23:00 +08:00
569600b607 frontend/pdq2_client: fix entry point 2015-01-22 10:38:47 +08:00
0c2e960c85 frontend: restore artiq_ prefix 2015-01-17 19:41:00 +08:00
3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
6cc3a9d973 frontend/*: move to artiq.frontend, make entry_points
* solves the trouble of having to setup PATH and PYTHONPATH in a project
  specific way and keep them changing
* works well with virtualenvs
* works under windows where the shebang is meaningless
* works if your python is not named "python3"

* can use "pip3 install --user --editable ."
  * creates an egg-link in ~/.local/share/... pointing to $PWD
  * generates the scripts and copies them to ~/.local/bin which is likely
    already in your $PATH
  * analogously under windows

* or call scripts as "python3 -m artiq.frontend.master"
2015-01-17 16:02:43 +08:00