Skip to content

Add a Hardware section in the documentation#781

Merged
a-corni merged 50 commits intodocs-v2from
ac/docs_hw
Feb 4, 2025
Merged

Add a Hardware section in the documentation#781
a-corni merged 50 commits intodocs-v2from
ac/docs_hw

Conversation

@a-corni
Copy link
Copy Markdown
Collaborator

@a-corni a-corni commented Dec 12, 2024

  • Neutral-atom Hardware (A)
    • What are the components of a neutral-atom QC ? How does it work ?
    • Device
      • What are the physical constraints explicited in a Device ?
    • Channel
      • What are the components of a Channel ?
    • What are the example of devices present in Pulser ? (AnalogDevice, DigitalAnalogDevice, MockDevice)
      • The simplest example: AnalogDevice
        • Description of the contents of AnalogDevice

@HGSilveri HGSilveri marked this pull request as draft December 12, 2024 10:59
@a-corni a-corni changed the base branch from develop to docs-v2 January 15, 2025 16:07
@review-notebook-app
Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Copy link
Copy Markdown
Collaborator

@HGSilveri HGSilveri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's try to fix the build to help the review

Comment thread docs/source/hardware.md Outdated
Comment thread docs/source/hardware.md Outdated
Comment thread docs/source/hardware.ipynb Outdated
@a-corni a-corni marked this pull request as ready for review January 20, 2025 09:14
Comment thread docs/source/hardware.ipynb Outdated
Comment thread docs/source/hardware.ipynb Outdated
"source": [
"As presented in the [introduction to programming a neutral-atom QPU](programming.md#writing-a-pulser-program), the first step to writing a Pulser program is [the selection of a `Device`](programming.md#pick-a-device). \n",
"\n",
"The `Device` object stores **all the physical constraints a quantum program written with `Pulser` should verify**, for it to be run on a neutral-atom QPU. The quantum programs, the `pulser.Sequence`, verify that each operation added to them are valid with respect to the constraints of the `Device`. "
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just realised that we never mentioned in the quick-start notebooks about the sequence initialisation besides a short sentence. Probably worth a step itself.

Comment thread docs/source/hardware.ipynb Outdated
"source": [
"As presented in the [introduction to programming a neutral-atom QPU](programming.md#writing-a-pulser-program), the first step to writing a Pulser program is [the selection of a `Device`](programming.md#pick-a-device). \n",
"\n",
"The `Device` object stores **all the physical constraints a quantum program written with `Pulser` should verify**, for it to be run on a neutral-atom QPU. The quantum programs, the `pulser.Sequence`, verify that each operation added to them are valid with respect to the constraints of the `Device`. "
Copy link
Copy Markdown
Collaborator

@ferrulli1pasqal ferrulli1pasqal Jan 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence sounds a bit bizarre. We haven't said what a device is yet we say what it contains and why we care.

How about the Device object is a fundamental component of the abstract models of neutral atoms QPU used in Pulser. It stores inside the physical characteristics/aspects of the hardware, as for example the channels[link] which are supported.

Also, instead of saying physical constraints a program must verify, how about the physical constraint the user must be aware when writing a program in Pulser.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • When it comes to running a program on a QPU: Each QPU has an associated Device, which you can get from the cloud provider you use to access this QPU.

  • For sole designing purposes: Pulser provides examples of typical physical devices in pulser.devices. Notably, pulser.AnalogDevice is an example of a QPU implementing an Ising Hamiltonian.

  • For designing without physical constraints during the writing of your quantum program, you can use a VirtualDevice. An example of such a VirtualDevice is the MockDevice provided in the pulser.devices, which gives full liberty to write a quantum program. VirtualDevice is detailed in an advanced tutorial.

Comment thread docs/source/hardware.ipynb Outdated
"cell_type": "markdown",
"metadata": {},
"source": [
"If you want to run a quantum program on a QPU, start by selecting the `Backend` associated with this QPU. From this `Backend` the `Device` associated with the QPU can be accessed via the `get_available_devices` method.\n",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel we're mixing up the goals: do we want to present the devices or something different? I feel confused reading this sentence. Same applies for next two paragraphs.

Comment thread docs/source/hardware.ipynb Outdated
Comment thread pulser-core/pulser/devices/_device_datacls.py Outdated
Comment thread docs/source/hardware.ipynb Outdated
Copy link
Copy Markdown
Collaborator

@HGSilveri HGSilveri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking really nice, great job @a-corni !

Comment thread docs/source/hardware.ipynb
Comment thread docs/source/hardware.ipynb Outdated
Copy link
Copy Markdown
Collaborator

@HGSilveri HGSilveri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I'd just suggest redirecting from the Programming page to here like I did here: 81954ad

@HGSilveri
Copy link
Copy Markdown
Collaborator

LGTM! I'd just suggest redirecting from the Programming page to here like I did here: 81954ad

Sorry, I was not very clear. What I meant is See Also boxes inside the Programming page, like these: 1988170

@a-corni a-corni merged commit 4891619 into docs-v2 Feb 4, 2025
@a-corni a-corni deleted the ac/docs_hw branch February 4, 2025 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants