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

Release v0.14.0 #560

Merged
merged 23 commits into from
Jul 13, 2023
Merged

Release v0.14.0 #560

merged 23 commits into from
Jul 13, 2023

Conversation

HGSilveri
Copy link
Collaborator

@HGSilveri HGSilveri commented Jul 13, 2023

Main changes:

  • Creation of backends as a uniform interface for sequence execution
  • Deprecation of Simulation in favour of QutipEmulator.from_sequence()
  • Addition of extra configuration parameters to the device and channel classes
  • Reduction of the overhead when adding measurement errors to emulation results
  • Adding a new realistic device for analog quantum computation: AnalogDevice

a-corni and others added 23 commits May 23, 2023 12:17
…518)

* WIP: Preliminary backend classes

* Set the Backend and CloudBackend interface

* Restructure the backend module

* Create classes for configuration

* Preliminart QutipBackend implementation

* Move sequence validation to Backend

* Cloud -> Remote

* Defining the Results container class

* Defining the RemoteResults object

* Defining QPUBackend

* Documenting QutipBackend

* Adding helper methods to Sequence

* Make PasqalCloud a RemoteConnection child class

* Defining the Pasqal EMU backends

* Relaxing back `Sequence.measure()` accepted bases

* Import sorting

* Defines NoiseModel and combines it with SimConfig

* Converting EmulatorConfig into pasqal_cloud config

* Move device validation and deprecate PasqalCloud methods

* Typing

* Add evaluation_times = "Final" option

* UTs for Backend and NoiseModel

* Relax return type of `Backend.run()`

* Add UTs for new Sequence methods

* Test new Sequence methods

* Complete PasqalCloud UTs

* Add tests for Pasqal Emulator backends

* Tests for QPUBackend

* Add tests for QutipBackend

* Typing and import sorting

* Add checks to EmulatorConfig

* Use `QutipEmulator` in `QutipBackend`

* Change type hint for job parameters

* Addressing review comments

* Change removal version for deprecation

* Minor review suggestion
…a modulation bandwidth (#526)

* Add an error when a Channel is called with an eom_config but without a modulation bandwidth

* Fix lint and test

* fix channels test order
* Handle eps_p = eps = 0 case

* Improve SPAM simulation performance

* Improve sample_state performance using tuple indexing

* Improvements of sample_state() performance

* Join meas_errors checks in simresults sample_state

* Update comments on simresults sample_state
* Fix for empty sequences on QutipEmulator

* Add UTs
* Fix Register drawing out of window

* - use a constrained layout for Register draw
- set a minimum size for Register draw

* Update draw layout param for seq_drawer and reg_drawer

* Add a minimum height for register drawing

---------

Co-authored-by: Henrique Silvério <henrique.silverio@tecnico.ulisboa.pt>
* separate draw_samples and draw_sequence

* rebase

* restore target rendering

* fix linters and types

* move measurement drawing and draw_interp_pts to draw_sequenece

* - add time_slots of type target to ChannelSamples
- transform inital_targets to a property
- implements draw_samples and integrate it on draw_sequenece

* Fix samples.py typing

* remove useless comments

* - fix _seq_drawer parameters names
- fix ChannelSamples field name and order

* fix linting

* move optional register drawing to draw_samples

* splitting of drawing of target regions

* fix linters

* move draw_phase_shifts outside the loop

* remove duplicate code from draw_sequence

* separate draw_channel_content from draw_samples

* restore _seq_drawer boxes definition position

* minor edits on seq_drawer

* adapt draw_phase_area for using sampled_seq in _seq_drawer

* - move gather_data to draw_channel_content
- minor refactoring

* - add _basis_ref to SequenceSamples
- move drawing of phase_shifts to _draw_channel_content

* - move phase_str into _draw_channel_content

* refactoring of _seq_drawer

* Refactoring of _seq_drawer.py

* fix typo

* fix EOM drawing in draw_sequence

* remove useless if

* - test_draw_samples
- rename _TargetSlot to _PulseTargetSlot
- fix duration for draw_samples
- fix eom_buffers creation
- fix draw_phase_area

* - add eom_start_buffers and eom_end_buffers in ChannelSamples
- create those buffer in Schedule.get_samples
- Adapt _seq_drawer gather_data for the new buffers
- add a test assert for ChannelSamples.in_eom_mode

* preserve backward compatibility for _TargetSlot

* Pin numpy version to < 1.25

* use eom_blocks for eom_intervals_ti creation
Merges changes from 0.13.1 hotfix
* Adding QutipEmulator.draw, deprecating Simulation

* Changing Simulation to QutipEmulator in tests

* Fixing typo

* Fxing doc

* Fixing typo and adding asserts
* Upgrade qutip, drop restriction on scipy

* validating sequence and device serialization

* Revert "validating sequence and device serialization"

This reverts commit a7e0917.
…rialization (#550)

* Adding validation of device, seq in serialization

* sorting imports

* Introducing init file with variables

* Taking into account review comments
* Upgrade pasqal-cloud and add convenience imports

* Make job_params required + Recover jobs order

* Implement PasqalCloud.fetch_available_devices()

* Updates for new pasqal-cloud version

* Type hinting

* Finish UTs

* Adding convenience imports

* Adding tutorial on backends

* Import sorting and formating

* Update API referencee

* Fix UTs

* Update pasqal-cloud version

* Avoiding mutable defaults

* Use backoff on cloud interactions

* Add link to the API reference in the tutorial

* Fix typo in tutorial
* Update QAOA and QAA to solve a QUBO problem.ipynb

Edited the total number of bit string to check as 2**len(Q) in the 3rd code block

* Fix formatting

---------

Co-authored-by: Henrique Silvério <henrique.silverio@tecnico.ulisboa.pt>
* Modify API

* Delete Simulation from doc

* Add Simulation to docs

* Modify module description, deprecation note

* Taking into account review comments
* Add multiple beam control option in RydbergEOM

* Add `Device.max_sequence_duration`

* Add `Channel.min_amp_area`

* Add `BaseDevice.max_runs`

* UTs for channel and EOM

* UTs for BaseDevice additions

* Add xfail tests for serialization

* Adressing review comments

* min_amp_area -> min_avg_amp

* Add optional BaseEOM.custom_buffer_time

* Restore backwards compatibility in BaseDevice

* Clarifying `eom_buffer_time`

* Use 'max_runs' on QPUBackend

* Complete docstrings

* Update the JSON schema
* Defining AnalogDevice

* Replacing IroiseMVP by AnalogDevice in the docs

* Update tutorials using IroiseMVP

* Update printed device specs
@HGSilveri HGSilveri requested a review from a-corni July 13, 2023 16:01
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@HGSilveri HGSilveri merged commit 838c521 into master Jul 13, 2023
7 checks passed
@HGSilveri HGSilveri deleted the release/v0.14.0 branch July 13, 2023 16:13
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.

4 participants