-
Notifications
You must be signed in to change notification settings - Fork 315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qcodes overhead #187
Comments
I am experiencing similar issues, I have never bothered to quantify this but this is definitely something we want to tune a bit. |
Out of curiosity what happens if you double and triple the number of points ? |
Running time seems linear in the number of points (see data below): for nn in [1, 10,100,1000,3000, 6000]:
steps=gates.chan0[0:100:(100/nn)]
numsteps=len(steps)
t0=time.time()
data = qc.Loop(steps, 0.0).run(data_manager=False, background=False, quiet=True)
dt=time.time()-t0
print('qc.Loop: number of steps %d: dt %.2f (length %d)' % (numsteps, dt, len(steps)) ) Results in
|
I think we should at least add a performance test to catch regressions. I am not familiar with unit tests relating to performance. The calculation time in seconds does not tell everything because the test can be executed on different platforms. For another project I compared the speed of a certain function to the speed calculating a fixed function (e.g. f(x)=2+sin(x), for x=1:100000), but I guess there are better ways to do this. @giulioungaretti Can you set up something for this? |
The loop will eventually be retired. Performance benchmarks are a good idea but will not be implemented fro the loop |
In qcodes there seems to be quite some overhead, both in the
qc.Loop
and in the different objects living on servers. An example script is included below. The output of this script on my system:For a small dataset of 2000 points the
qc.Loop
takes about 3 seconds! I set all delays to zero, and the mock model does no calculations at all. The same "measurement" with a simple loop and local objects takes hardly any time.Can we reduce this overhead or am I missing some options than I should set?
The text was updated successfully, but these errors were encountered: