Quantum Computing Asked on January 18, 2021
What is the best way to get the circuit run time in Q# ?
More precisely, I run a circuit using dotnet -run command and I would like to know how many time it took for running my circuit. Actually I compute the delay between the moment I start the command and the return, but I suppose it includes building time, I really just need the circuit running time.
Thank you.
Best regards.
Here is what I did when I was exploring optimizing the code to run as fast as possible in simulation (here is the blog post describing the things I looked into).
using QuantumSimulator qsim = new QuantumSimulator();
bool[] result = GroversSearch.Run(qsim).Result.ToArray();
Run
in classical code that tracks the start and the end time. Here is C# code for it:Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
// ... call quantum operation here ...
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine("RunTime " + elapsedTime);
You can do any pre-processing before the call to quantum code and any post-processing afterwards, and they won't count towards the execution time.
You can see the full example here.
Correct answer by Mariia Mykhailova on January 18, 2021
Note: This was suppose to be a comment but it got too long so I just put it here as an answer.
I don't think Microsoft has successfully built their quantum machine, and therefore it would not be be possible to do that, without having to run your program through actual quantum gate. The run time you get by seeing seeing how fast you can execute the simulation is heavily depend on your classical computer resources. The run time on the quantum circuits depend on the number of gates and depth of the circuit, and how fast you can implement those gates. For IBM's devices, the sampling time of single qubit gate is around 100-150 ns (not sure, but you can look it up and they are different for different qubits), and the CNOT gate time is around 1000 ns (again, they are different on which two qubit you operate on). Then you can work out the math of how long it takes to execute your ciruit. You probably can write small script to do this. Between the gates, you may want to add some buffer time as well, maybe 20ns or so.
Answered by KAJ226 on January 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP