zhinst/laboneq

[Feature] Check maximum available acquisitions in compiler

Opened this issue · 5 comments

Is your feature request related to a problem? Please describe.
Measuring a high number of single shot data in combination with realtime loops.
The devices are limited to a number of acquisitions e.g. 2^19 for the SHFQA. If more acquisitions are performed currently the controller only notices this when trying to fetch the results, which happens only after executing the long experiment.

Describe the solution you'd like
Check in the compiler whether all acquisitions can be handled by the device.

Describe alternatives or workarounds you have considered
Manually check that you are not above the limit.

Hi @GlaserN ,
thanks for reporting this, I just had a look and the controller exception should happen already before the experiment is executed on the instruments, i.e.directly after compilation has finished, not after the execution.
Is this different in your case?

The following experiment will only complain after 315s with:

2023.03.03 15:04:12.184 laboneq.controller.util        CRITICAL The number of measurements (524288) executed for device dev12188 on channel 0 does not match the number of measurements defined (1052672). Probably the time between measurements or within a loop is too short. Please contact Zurich Instruments.

experiment_too_many_acquires.zip

Thanks for the feedback, the error you quote indicated that not enough measurements were triggered, not that the number of measurements defined was too much.
Is this on UHFQA?

MAN6O commented

Hello @QuantumClemens,
I encountered this problem when doing RB's aswell (SHFQA). In my case I defined 2^14 shots and 100 individual sequences with a measurement totaling 2^14*100 or roughly ~ 2^21 measurements. The experiment ran for 850s before giving an error and trying to perform the experiment again two more times. The code ran through and at the end, no data was received. This issue could be easily resolved by checking in the compiler the total measurement number is not above the limit (2^19 I believe) and giving an error/not executing if the number is exceeded. Best wishes.

Hello @MAN6O ,
thanks for reporting this, we are aware and this change is planned in our backlog.