Skip to content

Results are limited to the current section: Qoolqit

Product news

Compilation

In this section, you will learn how to:

  • understand how compilation chooses the physical scale of an implementation,
  • distinguish drive-limited and interaction-limited compilation,
  • see why time must be rescaled together with the Hamiltonian

This section describes how QoolQit's compilation maps an abstract programs onto actual hardware.

This page assumes the knowledge of the QoolQit Model page where we introduce the main idea of compilation at a high level: the compiler translates a program, defined in dimensionless units, to the physical scale used to realize it on hardware.

From dimensionless programs to physical hardware

Section titled “From dimensionless programs to physical hardware”

A QoolQit program is specified in terms of dimensionless quantities (J~ij\tilde{J}_{ij}, Ω~(t)\tilde{\Omega}(t), δ~(t)\tilde{\delta}(t), t~\tilde t). Once the device, and therefore JmaxJ_{\text{max}} and rminr_{\text{min}} are fixed, the conversion to physical units is completely determined:

Ω(t)=JmaxΩ~(t),δ(t)=Jmaxδ~(t),Δ(t)=JmaxΔ~(t),rij=rminr~ij,t=t~/Jmax. \Omega(t) = J_{\text{max}}\,\tilde{\Omega}(t), \qquad \delta(t) = J_{\text{max}}\,\tilde{\delta}(t), \qquad \Delta(t) = J_{\text{max}}\,\tilde{\Delta}(t), \qquad r_{ij} = r_{\text{min}}\,\tilde r_{ij}, \qquad t = \tilde t/J_{\text{max}}.

Thus, a given dimensionless program corresponds to one and only one set of physical parameters on a given device.

In the following step, QoolQit adjusts the dimensionless program so that the resulting physical parameters satisfy the device's operational constraints.

We will now discuss the compilation strategy that QoolQit uses to rescale the compiled program so that it can both run on a physical QPU and fully exploit its capabilities.

As discussed, the user specifies a dimensionless program by providing a register (which determines the values J~ij\tilde J_{ij}) and a time-dependent drive (amplitude, detuning and phase, which determines Ω~(t)\tilde \Omega(t), δ~(t)\tilde\delta(t), Δ~(t)\tilde\Delta(t) and ϕ\phi). Over all these parameters, two in particular are arguably more important since they set the energy scales of the interactions and of the drive, and thus their ratio. Respectively, they are the maximum interaction maxi>jJ~ij\max_{i>j}\tilde J_{ij} and the maximum driving amplitude maxt~Ω~\max_{\tilde t}\tilde\Omega in the defined program.

Thus, simplifying, we will represent a program as a point in the (J~,Ω~)(\tilde J, \tilde\Omega) plane. Interestingly, every program also defines a line through the origin in that plane, with slope Ω~max/J~max\tilde{\Omega}_{\text{max}}/\tilde{J}_{\text{max}}. All points lying on the same line are ideally physically identical programs, differing only by a global energy scale factor while preserving the fundamental ratio between driving and interaction strengths.

In addition to the upper bound J~ij1\tilde J_{ij} \leq 1 inherent to the adimensionalization, the device imposes a maximum drive amplitude Ω~max=Ωmax/Jmax\tilde\Omega_{\text{max}} = \Omega_{\max}/J_{\text{max}}. Together these define a device allowed region represented as a shaded green rectangle in the figure below:

Compilation diagram

If the user's point lies outside this region, the program cannot be implemented as specified. If it lies strictly inside, the program is feasible but does not exploit the full capability of the device. Compilation resolves both situations by rescaling the program (sliding the point along the line) until it sits exactly on the boundary of the feasible region, maximizing either Ω~\tilde\Omega or J~\tilde J, depending on your program.

Concretely, compilation rescales all dimensionless parameters by a common factor α\alpha:

J~ij    αJ~ij,Ω~    αΩ~,δ~    αδ~, \tilde J_{ij}\;\to\;\alpha\,\tilde J_{ij}, \qquad \tilde\Omega\;\to\;\alpha\,\tilde\Omega, \qquad \tilde\delta\;\to\;\alpha\,\tilde\delta,

with α\alpha chosen as large as possible while keeping the program inside the feasible region. The ratio Ω~/J~\tilde\Omega/\tilde J is preserved by construction, so the dimensionless content of the program — the relative balance between drive and interactions — is unchanged.

When the ratio Ω~/J~\tilde\Omega/\tilde J is large, the ray hits the line Ω~=Ω~max\tilde\Omega = \tilde\Omega_{\max} before reaching J~=1\tilde J = 1 (blue line above). The compiled program saturates the drive maximum amplitude:

αmaxt~Ω~  =  Ω~maxα  =  Ω~maxmaxt~Ω~. \alpha \,\max_{\tilde t}\tilde\Omega \;=\; \tilde\Omega_{\max} \qquad\Longrightarrow\qquad \alpha \;=\; \frac{\tilde\Omega_{\max}}{\max_{\tilde t}\tilde\Omega}.

Atoms are placed further apart than the device minimum: the closest pair sits at a dimensionless distance r~>1\tilde r > 1, equivalently at a physical distance r>rminr > r_{\min}.

When the ratio Ω~/J~\tilde\Omega/\tilde J is small, the ray hits J~=1\tilde J = 1 before reaching Ω~max\tilde\Omega_{\max} (red line above). The compiled program saturates the interaction bound:

αmaxi<jJ~ij  =  1α  =  1maxi<jJ~ij. \alpha \,\max_{i<j}\tilde J_{ij} \;=\; 1 \qquad\Longrightarrow\qquad \alpha \;=\; \frac{1}{\max_{i<j}\tilde J_{ij}}.

In this case, the closest pair of atoms is placed exactly at the device's minimum spacing rminr_{\min}, and the drive amplitude remains strictly below the device maximum.


The same rescaling argument that adjusts Ω~\tilde\Omega and J~\tilde J also forces a rescaling of dimensionless time. This follows directly from the Schrödinger equation.

In physical units,

iddtψ(t)=H(t)ψ(t). i\hbar \frac{d}{dt}|\psi(t)\rangle = H(t)|\psi(t)\rangle.

Because JmaxJ_{\text{max}} is a fixed device constant, the change of variable t~=Jmaxt\tilde t = J_{\text{max}}t rewrites this exactly as

iddt~ψ(t~)=H~(t~)ψ(t~), i\frac{d}{d\tilde t}|\psi(\tilde t) \rangle = \tilde H(\tilde t)|\psi(\tilde t) \rangle,

where H~=H/Jmax\tilde H = H/J_{\text{max}}. The conversion t~=Jmaxt\tilde t = J_{\text{max}} t between physical and dimensionless time is therefore fixed by the device, exactly like Ω~=Ω/Jmax\tilde \Omega = \Omega/J_{\text{max}}.

Now consider what happens during compilation. Compilation multiplies the dimensionless Hamiltonian by a factor α\alpha:

H~(t~)    αH~(t~). \tilde H(\tilde t)\;\longrightarrow\;\alpha\,\tilde H(\tilde t).

For two programs along the same line to represent the same physics,i.e. to generate the same unitary evolution, the dimensionless time variable must be rescaled by the inverse factor:

t~    t~/α. \tilde t\;\longrightarrow\;\tilde t/\alpha.

Indeed, with this rescaling,

Texp(i0t~/ααH~(t~)dt~)=Texp(i0t~H~(s)ds), \mathcal{T}\exp\left(-i\int_0^{\tilde t/\alpha}\alpha\,\tilde H(\tilde t')\,d\tilde t'\right) = \mathcal{T}\exp\left(-i\int_0^{\tilde t}\tilde H(s)\,ds\right),

the unitary generated by the rescaled program is identical to the unitary generated by the original program.

Combining the fixed device conversion t=t~/Jmaxt = \tilde t/J_{\text{max}} with the compilation rescaling t~t~/α\tilde t \to \tilde t/\alpha, a dimensionless duration T~\tilde T specified by the user is realized physically in a time

T  =  T~/αJmax  =  T~αJmax. T \;=\; \frac{\tilde T/\alpha}{J_{\text{max}}} \;=\; \frac{\tilde T}{\alpha\,J_{\text{max}}}.

A larger α\alpha, that is a program with larger amplitude and interaction, yields a shorter physical runtime. This is consistent with the compilation strategy: by maximizing α\alpha, QoolQit produces the fastest physical implementation compatible with the device constraints.

The interpretation above relies on interactions being physically present. For a single atom, however, there are no pairwise interaction terms, so J0J_0 is no longer an intrinsic dynamical scale of the problem.

Mathematically, the dimensionless convention still works exactly as before: one may still define

t~=J0t \tilde t = \frac{J_0}{\hbar}t

and rewrite the Hamiltonian in dimensionless form. But in this case, JmaxJ_{\text{max}} is only a reference scale introduced by convention. It is not a scale that the dynamics can directly probe, because there is no interaction-driven process in the system.

As a result, saying that time is measured "in units of the interaction" remains mathematically valid, but it is not especially informative physically in the one-atom limit.

For a single atom, time should instead be interpreted through the local dynamics generated by the drive and detuning, namely through quantities such as Ω~\tilde\Omega and δ~\tilde\delta. For example, when detuning is absent, the natural timescale is the Rabi period set by the drive amplitude. In that regime, the relevant physical question is not how long it takes correlations to spread, but how long it takes the atom to undergo coherent single-particle evolution.