Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync master to dev #1160

Closed
wants to merge 27 commits into from
Closed

sync master to dev #1160

wants to merge 27 commits into from

Conversation

michaelvu97
Copy link
Contributor

merges changes from master into dev.

motivation

#1155 merged dev to master with modifications, but these modifications did not make their way into dev. This PR does exactly that.

astralcai and others added 27 commits May 7, 2024 13:18
Co-authored-by: GitHub Nightly Merge Action <[email protected]>
Co-authored-by: Mudit Pandey <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Rashid N H M <[email protected]>
Co-authored-by: Guillermo Alonso-Linaje <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: CatalinaAlbornoz <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: ixfoduap <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Stepan Fomichev <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Alvaro Ballon <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Lee J. O'Riordan <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: DanielNino27 <[email protected]>
Co-authored-by: Paul Finlay <[email protected]>
Co-authored-by: ashishks0522 <[email protected]>
Co-authored-by: Mikhail Andrenkov <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Diksha Dhawan <[email protected]>
#1094 was accidentally merged to `dev` instead of `master`. This PR
applies the squashed commit of #1094 to `master` as well.

Co-authored-by: Guillermo Alonso-Linaje <[email protected]>
Co-authored-by: Thomas R. Bromley <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
Updates the hardware section of the demo metadata schema to include
`covalent` as a valid entry.

See XanaduAI/pennylane.ai-react#1400 for
reference.
**Title:**
Quantum Circuit Born Machines
**Summary:**
Introduces the ideas of Quantum Circuit Born Machines (QCBMs) along with
its gradient-based training. Applies QCBM to learn bars and stripes and
two peaks dataset.
**Relevant references:**

[Differentiable Learning of Quantum Circuit Born
Machine](https://arxiv.org/abs/1804.04168)

**Possible Drawbacks:**

**Related GitHub Issues:**

----
If you are writing a demonstration, please answer these questions to
facilitate the marketing process.

* GOALS — Why are we working on this now?: The purpose is to use
PennyLane to implement a popular algorithm in unsupervised generative
modelling based on the paper "Differentiable Learning of Quantum Circuit
Born Machine".

* AUDIENCE — Who is this for?: The demo provides a gentle introduction
to QCBMs, making it suitable for beginners. It also targets individuals
interested in generative modelling with quantum algorithms.

* KEYWORDS — What words should be included in the marketing post?: QCBM,
QML, MMD, Gradient-based Optimization

* Which of the following types of documentation is most similar to your
file?
(more details
[here](https://www.notion.so/xanaduai/Different-kinds-of-documentation-69200645fe59442991c71f9e7d8a77f8))
    
- [ ] Tutorial
- [x] Demo
- [ ] How-to

---------

Co-authored-by: Guillermo Alonso-Linaje <[email protected]>
Co-authored-by: Alvaro Ballon <[email protected]>
**Title:** Running GPU-accelerated quantum circuit simulations on
Covalent Cloud using PennyLane

**Summary:**

**Relevant references:**

**Possible Drawbacks:**

**Related GitHub Issues:**

---------

Co-authored-by: Sankalp Sanand <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
In the block encoding example from [this
demo](https://pennylane.ai/qml/demos/tutorial_lcu_blockencoding/), the
resulting matrix does not appear correctly.
This PR solves the problem.
A demo and discussion of Lie algebraic simulation techniques, i.e.
papers https://arxiv.org/abs/1012.2873 and
https://arxiv.org/abs/2308.01432

If you are writing a demonstration, please answer these questions to
facilitate the marketing process.

If you are writing a demonstration, please answer these questions to
facilitate the marketing process.

* GOALS — Why are we working on this now?
g-sim is a hot topic. Most prominently, it shows that systems with
provably absent barren plateaus can be simulated efficiently. This is
conceptually interesting, though likely not very relevant in practice
since the systems for which this is indeed the case are very rare.

* AUDIENCE — Who is this for?
Quantum researchers, practitioners with a fair understanding. In
combination with the linked Intro to DLA demo this should also be
suitable for beginners.

* KEYWORDS — What words should be included in the marketing post?
  - dynamical Lie algebra / Lie groups
  - g-sim
  - barren plateaus

* Which of the following types of documentation is most similar to your
file?
(more details
[here](https://www.notion.so/xanaduai/Different-kinds-of-documentation-69200645fe59442991c71f9e7d8a77f8))
    
- [ ] Tutorial
- [x] Demo
- [ ] How-to

[sc-58429]

---------

Co-authored-by: GitHub Nightly Merge Action <[email protected]>
Co-authored-by: Guillermo Alonso-Linaje <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Mudit Pandey <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: CatalinaAlbornoz <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Rashid N H M <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: ixfoduap <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Stepan Fomichev <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Alvaro Ballon <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Lee J. O'Riordan <[email protected]>
Co-authored-by: DanielNino27 <[email protected]>
Co-authored-by: Paul Finlay <[email protected]>
Co-authored-by: ashishks0522 <[email protected]>
Co-authored-by: Mikhail Andrenkov <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Astral Cai <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
The folder name in the readme figure inclusion syntax was incorrect.
**Title:**
Fix for installation of `torch` and `torchvision` on macOS

**Summary:**
After installing poetry (version 1.8.3) on macOS and running `make
environment`, you get the following error. Fixing this error will lead
to a similar one for `torchvision`.
```
  - Installing torch (1.13.1+cpu): Failed

  RuntimeError

  Unable to find installation candidates for torch (1.13.1+cpu)

  at ~/.local/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/chooser.py:74 in choose_for
       70│ 
       71│             links.append(link)
       72│ 
       73│         if not links:
    →  74│             raise RuntimeError(f"Unable to find installation candidates for {package}")
       75│ 
       76│         # Get the best link
       77│         chosen = max(links, key=lambda link: self._sort_key(package, link))
       78│ 
 ```

This is because the installer is using the `+cpu` version (despite the fact that the non `+cpu` version is in `pyproject.toml`). Specifying the source seems to fix the issue and the installer proceeds without error.

**Relevant references:**

**Possible Drawbacks:**

**Related GitHub Issues:**

---------

Co-authored-by: Rashid N H M <[email protected]>
Merged the approach from #1106
with the branching approach here. This has neater illustrations anyway 👍

If you are writing a demonstration, please answer these questions to
facilitate the marketing process.

* GOALS — Why are we working on this now?
Lie algebras in QC and simulation techniques like g-sim are a hot topic
due to their relevance to barren plateaus. This is an extension of g-sim
to a small number of non-DLA gates. It bears some intriguing theoretical
features but, like g-sim itself, is of rather limited practical
relevance.

* AUDIENCE — Who is this for?
This is an expert demo targeted towards people familiar with Lie
algebras, g-sim in particular.

* KEYWORDS — What words should be included in the marketing post?
  - dynamical Lie algebra / Lie groups
  - g-sim

* Which of the following types of documentation is most similar to your
file?
(more details
[here](https://www.notion.so/xanaduai/Different-kinds-of-documentation-69200645fe59442991c71f9e7d8a77f8))
    
- [ ] Tutorial
- [x] Demo
- [ ] How-to 

[sc-62859]

---------

Co-authored-by: Ivana Kurečić <[email protected]>
Changing to a better image
As described in Shortcut.

Note that this update does not include the following:
* tutorial_apply_qsvt (node not yet available)
* tutorial_fermionic_operators (node not yet available)
* tutorial_teleportation (node not yet available)

I have also fixed some language issues that I saw along the way.
**Title:** How to use Qiskit 1.0 with PL

Shortcut:
https://app.shortcut.com/xanaduai/story/63358/how-to-how-to-use-qiskit-1-0-with-pennylane

---------

Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
…workflow (#1140)

It's not useful metadata and breaks the schema a little bit
This is the sync from dev to master for the v0.37 release.

---------

Co-authored-by: GitHub Nightly Merge Action <[email protected]>
Co-authored-by: Guillermo Alonso-Linaje <[email protected]>
Co-authored-by: Tom Bromley <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Christina Lee <[email protected]>
Co-authored-by: Mudit Pandey <[email protected]>
Co-authored-by: Matthew Silverman <[email protected]>
Co-authored-by: CatalinaAlbornoz <[email protected]>
Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: lillian542 <[email protected]>
Co-authored-by: Rashid N H M <[email protected]>
Co-authored-by: Jay Soni <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: ixfoduap <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Utkarsh <[email protected]>
Co-authored-by: Romain Moyard <[email protected]>
Co-authored-by: Stepan Fomichev <[email protected]>
Co-authored-by: soranjh <[email protected]>
Co-authored-by: Alvaro Ballon <[email protected]>
Co-authored-by: Diego <[email protected]>
Co-authored-by: Lee J. O'Riordan <[email protected]>
Co-authored-by: Korbinian Kottmann <[email protected]>
Co-authored-by: DanielNino27 <[email protected]>
Co-authored-by: Paul Finlay <[email protected]>
Co-authored-by: ashishks0522 <[email protected]>
Co-authored-by: Mikhail Andrenkov <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: Diksha Dhawan <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
Co-authored-by: WrathfulSpatula <[email protected]>
Co-authored-by: Olivia Di Matteo <[email protected]>
Co-authored-by: Pietropaolo Frisoni <[email protected]>
Co-authored-by: Ahmed Darwish <[email protected]>
Co-authored-by: Michael Vu <[email protected]>
**Title:**
The Qrack device back end (with Catalyst)

**Summary:**
In this tutorial you will learn how to use the Qrack device back end for
PennyLane and Catalyst, and you'll learn certain suggested cases of use
where Qrack might particularly excel at delivering lightning-fast
performance or minimizing required memory resources. (See #1137: this
recreates the PR for further review)

**Relevant references:**
https://github.com/unitaryfund/qrack
https://github.com/unitaryfund/pyqrack
https://arxiv.org/abs/2304.14969

**Possible Drawbacks:**
Not all users might have Catalyst installed, and this tutorial will
require Catalyst v0.7 or later.

----
If you are writing a demonstration, please answer these questions to
facilitate the marketing process.

* GOALS — Why are we working on this now?

The Catalyst and Unitary Fund teams are working together to update the
Qrack PennyLane device back end (based on open-source code reuse from
the Qulacs device and original work with Qrack and Catalyst) to make use
of the Catalyst compiler and potentially achieve leading performance on
a wide range of `qml.qnode` subroutine qubit widths and applications.
Notably, Qrack automatically switches between CPU-based and GPU-used
based simulation methods as appropriate to maximize overall performance,
whether circuits are wide enough to benefit from thousands of parallel
work items in a job dispatched to a GPU. The Qrack device back end is
also open source and can serve as an example or basis for other
simulator device back ends that may reuse its code.


* AUDIENCE — Who is this for?

The potential audience includes researchers, educators, students,
hobbyists, and anyone with an interest in faster and more efficient
quantum computer simulation in PennyLane.


* KEYWORDS — What words should be included in the marketing post?

GPU, high-performance computing (HPC), hybrid CPU/GPU, near-Clifford
simulation, quantum binary decision diagrams (QBDD), vendor-agnostic GPU
support (OpenCL), optional CUDA

* Which of the following types of documentation is most similar to your
file?
(more details
[here](https://www.notion.so/xanaduai/Different-kinds-of-documentation-69200645fe59442991c71f9e7d8a77f8))
    
- [ ] Tutorial
- [x] Demo
- [ ] How-to

---------

Co-authored-by: Josh Izaac <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
Co-authored-by: Ivana Kurečić <[email protected]>
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.