I am new to dynamical decoupling and is trying to study this from qiskit: https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.PadDynamicalDecoupling . There, they are specifying the duration for each gate with an integer number. How can I relate this integer number to the real device gate duration (X, RZ, CX, etc. ) in the unit of nanosecond?
1 Answer
The integers in the InstructionDurations()
are the multipliers of the real-system timestep dt
.
So for example, consider the command InstructionDurations([("h", 0, 50)])
. What this means is that you are specifying the gate duration for h
gate (the first argument) which is acting on 0
qubit (the second argument) for 50*dt
duration (third argument). The duration of gate which is 50*dt
means nothing (because dt
is not defined) unless you specify on which backend you want to run the dynamical decoupling.
Here's how qiskit
defines dt
: It is the timestep in terms of the backend's cycle time (1 / sample rate). The value of dt
is predefined and can be different for different backends and real system but the unit of dt
is in nanoseconds. So, you must know the value of dt
to determine a program's real-time dynamics.
To determine the value of dt
for a backend (fake or real), you can do print(backend.dt)
and this will give you the value of dt in seconds.
Hope this helps!