Understand your sequence
Register & Channel
In a nutshell, neutral atom devices feature two main components:
- The Register, a group of trapped atoms in a defined (but reconfigurable) configuration. Each atom holds a specific quantum state encoded in specific electronic levels. Usually these are two-level systems and we refer to them as qubits.
- The Channels, responsible for manipulating the state of the atoms by addressing specific electronic transitions. These consist most often, but not exclusively, of lasers.
Device, Sequence & Pulse
- Each Device will impose specific restrictions on these components – they define things like how many atoms a Register can hold and in what configurations they can be arranged in; what channels are available and what values they can reach, among others.
For this reason, a Sequence is closely dependent on the Device it is meant to run on and should be created with it in mind from the start.
This Sequence is the central object in Pulser and it consists essentially of a series of Pulses (and other instructions) that are sequentially allocated to channels.
- Each Pulse describes, over a finite duration, the modulation of a channel’s output amplitude, detuning and phase. While the phase is constant throughout a pulse, the amplitude and detuning are described by Waveforms, which define these quantities values throughout the pulse.
Variables
From simple sweeps to variational quantum algorithms, it is often the case that one wants to try out multiple pulse sequences that vary only in a few parameters: this is where parametrized sequences come into play. Declare the variables into your sequence at creation - you can then serialize it and send it to the cloud for execution. For each job you add to your batch, make sure to define the value of each variable.
Keep in mind that you can at anytime check the Pulser documentation for further information about parametrized sequences and the way you can build them.