forked from M-Labs/artiq
1
0
Fork 0

doc/manual/faq: fix minor details

This commit is contained in:
Sebastien Bourdeauducq 2015-03-25 16:17:49 +01:00
parent 7482921f81
commit bc307abc7a
1 changed files with 14 additions and 13 deletions

View File

@ -7,7 +7,7 @@ How do I ...
override the `sysclk` frequency of just one dds? override the `sysclk` frequency of just one dds?
------------------------------------------------ ------------------------------------------------
Override the parameter using an argument in the ddb. Override the parameter using an argument in the DDB.
organize parameters in folders? organize parameters in folders?
------------------------------- -------------------------------
@ -18,14 +18,15 @@ Names need to be unique.
enforce functional dependencies between parameters? enforce functional dependencies between parameters?
--------------------------------------------------- ---------------------------------------------------
If you want to slave a parameter `b` in the pdb to be `b = 2*a`, If you want to override a parameter `b` in the PDB to be `b = 2*a`,
use wrapper experiments, overriding parameters of arguments. use wrapper experiments, overriding parameters by passing them to the
experiment's constructor.
get rid of `DBKeys`? get rid of `DBKeys`?
-------------------- --------------------
`DBKeys` enforces valid parameter/argument names, references `DBKeys` enforces valid parameter/argument names, references
keys in pdb and hints at metadata on how values can be retrieved. keys in PDB and hints at metadata on how values can be retrieved.
write a generator feeding a kernel feeding an analyze function? write a generator feeding a kernel feeding an analyze function?
--------------------------------------------------------------- ---------------------------------------------------------------
@ -54,18 +55,18 @@ create and use variable lengths arrays?
Don't. Preallocate everything. Or chunk it and e.g. read 100 events per Don't. Preallocate everything. Or chunk it and e.g. read 100 events per
function call, push them upstream and retry until the gate time closes. function call, push them upstream and retry until the gate time closes.
execute multiple slow controller RPCs in parallel without loosing time? execute multiple slow controller RPCs in parallel without losing time?
----------------------------------------------------------------------- ----------------------------------------------------------------------
Use `threading.Thread`: portable, fast, simple for one-shot calls Use `threading.Thread`: portable, fast, simple for one-shot calls.
write part of my experiment as a coroutine/Task/generator? write part of my experiment as a coroutine/asyncio task/generator?
---------------------------------------------------------- ------------------------------------------------------------------
You can not change the API that your experiment exposes: `__init__()`, You can not change the API that your experiment exposes: `__init__()`,
`build()`, and `analyze()` need to be regular functions, not generators, `build()`, `run()` and `analyze()` need to be regular functions, not
coroutines. or `asyncio.Tasks`. That would make reusing your own code in generators or asyncio coroutines. That would make reusing your own code in
sub-experiments difficult and fragile. You can however always use the sub-experiments difficult and fragile. You can however always use the
scheduler API to achieve the same (`scheduler.suspend(duration=0)`) scheduler API to achieve the same (`scheduler.yield(duration=0)`)
or wrap your own generators/coroutines/Tasks in regular functions that or wrap your own generators/coroutines/tasks in regular functions that
you then expose as part of the API. you then expose as part of the API.