Using a couple of Urukul modules,
the following code is executed (inside two nested loops):
self.probe_1[time_slice][seq_channel] = self.core.get_rtio_counter_mu()
self.dds_devs[dds_channel].sw.off()
self.probe_2[time_slice][seq_channel] = self.core.get_rtio_counter_mu()
printing the difference between two respective timestamps for each execution yields:
...
timing difference in ns: 1904
timing difference in ns: 2104
timing difference in ns: 1856
timing difference in ns: 9641544
timing difference in ns: 2936
timing difference in ns: 2568
timing difference in ns: 1712
...
The code does create the intended events, but what's going wrong here, that in a seemingly random instance, creating the respective events for switching off an RF channel take more than three orders of magnitude more time than usual?
Is there some way to control/avoid that?
Such behaviour becomes an issue of course, when trying to deterministically avoid underflow errors.
Best regards,
Max
PS: I'm using artiq version 5.7111.5168b831 on the host PC and Kasli, and execute the
code using artiq_run in a nix environment on an Ubuntu system.