All Projects → adgt → pulsemaker

adgt / pulsemaker

Licence: Apache-2.0 license
A Python widget library for designing pulses and pulse schedules for quantum computing hardware. Can be used in Jupyter notebooks, JupyterLab, and the IPython kernel.

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to pulsemaker

Qu.js
Quantum Computing for Humans!
Stars: ✭ 15 (-21.05%)
Mutual labels:  quantum-computing
A-quantum-inspired-genetic-algorithm-for-k-means-clustering
Implementation of a Quantum inspired genetic algorithm proposed by A quantum-inspired genetic algorithm for k-means clustering paper.
Stars: ✭ 28 (+47.37%)
Mutual labels:  quantum-computing
QuantumResources
A collection of resources for Quantum Computing
Stars: ✭ 43 (+126.32%)
Mutual labels:  quantum-computing
qc portfolio optimization
A program that implements the portfolio optimization experiments using a hybrid quantum computing algorithm from arXiv:1911.05296. The code was developed as part of the 2020 Quantum mentorship program. Many thanks to my mentor Guoming Wang from Zapata Computing!
Stars: ✭ 21 (+10.53%)
Mutual labels:  quantum-computing
Tutorials
This repository contains study material that EPFL, Harvard, MIT Quantum Computing associations and others provide to the students as training and practice.
Stars: ✭ 34 (+78.95%)
Mutual labels:  quantum-computing
avaloni
Interpreter of the Avalon programming language.
Stars: ✭ 14 (-26.32%)
Mutual labels:  quantum-computing
QuantumInformation.jl
A Julia package for numerical computation in quantum information theory
Stars: ✭ 81 (+326.32%)
Mutual labels:  quantum-computing
qram
Library for Q# implementing various qRAM proposals
Stars: ✭ 46 (+142.11%)
Mutual labels:  quantum-computing
qcor
C++ compiler for heterogeneous quantum-classical computing built on Clang and XACC
Stars: ✭ 78 (+310.53%)
Mutual labels:  quantum-computing
quilc
The optimizing Quil compiler.
Stars: ✭ 413 (+2073.68%)
Mutual labels:  quantum-computing
public research
Publicly available research done by BOHR.TECHNOLOGY.
Stars: ✭ 16 (-15.79%)
Mutual labels:  quantum-computing
IBM-Quantum-QCE20-Tutorials
Repository of code notebooks for tutorials at IEEE Quantum Week (QCE20) https://qce.quantum.ieee.org/tutorials/
Stars: ✭ 38 (+100%)
Mutual labels:  quantum-computing
UniversalQCompiler
Synthesizing arbitrary quantum computations
Stars: ✭ 53 (+178.95%)
Mutual labels:  quantum-computing
QuAlgorithmZoo.jl
A curated implementation of quantum algorithms with Yao.jl
Stars: ✭ 78 (+310.53%)
Mutual labels:  quantum-computing
neural-decoder
Neural Network Decoders for Quantum Error Correcting Codes
Stars: ✭ 19 (+0%)
Mutual labels:  quantum-computing
QCompress-1
Quantum Autoencoder Implementation using Forest and OpenFermion
Stars: ✭ 20 (+5.26%)
Mutual labels:  quantum-computing
qiskit.org
The Qiskit official website
Stars: ✭ 85 (+347.37%)
Mutual labels:  quantum-computing
qcl
Quantum Computation Language port from http://tph.tuwien.ac.at/~oemer/qcl.html
Stars: ✭ 29 (+52.63%)
Mutual labels:  quantum-computing
Interlin-q
A Quantum Interconnect Simulator for Distributed Quantum Algorithms
Stars: ✭ 32 (+68.42%)
Mutual labels:  quantum-computing
QuantumCircuitOpt.jl
A Julia/JuMP Package for Optimal Quantum Circuit Design
Stars: ✭ 45 (+136.84%)
Mutual labels:  quantum-computing

Pulsemaker

pypi

Pulsemaker is a Python widget library for designing pulses and pulse schedules for quantum computing hardware. The library can be used in Jupyter notebooks, JupyterLab, and the IPython kernel.

Currently, the export feature only supports IBM's Qiskit Pulse, but Rigetti's Quil-T and Pasqal's Pulser can be considered if there is enough interest.

To see a workflow that combines both the PulseDesigner and the ScheduleDesigner into a single dashboard, check out qonduit.

Pulse Designer

PulseDesigner

Schedule Designer

ScheduleDesigner

Getting Started

Installation

To install use pip (JupyterLab 3 recommended):

$ pip install pulsemaker

For a development installation,

$ git clone https://github.com/adgt/pulsemaker.git
$ cd pulsemaker
$ pip install -e .

Tutorials / Labs

For a tutorial on how to use the PulseDesigner take a look at Tutorial_PulseDesigner.ipynb.

For a tutorial on how to use the ScheduleDesigner take a look at Tutorial_ScheduleDesigner.ipynb

For a fun experience utilizing both components together, try out the Frequency Sweep lab.

Otherwise, you can simply run:

from pulsemaker import PulseDesigner, ScheduleDesigner
pulse_d = PulseDesigner()
schedule_d = ScheduleDesigner()
display(pulse_d)
display(schedule_d)

API

PulseDesigner()

  • pulse: waveform data for use in Qiskit

ScheduleDesigner()

  • pulses: dictionary of pulses in the schedule
  • phases: dictionary of phases in the schedule
  • freqs: dictionary of frequencies in the schedule
  • schedule: schedule in Qiskit format
  • circuit_qasm: setter for converting qasm to a pulse schedule (write-only)

Development

Follow the instructions above for a development installation. Then, to actively developing on your machine, run Jupyter Lab with the command:

$ jupyter lab

Library files are located under the pulsemaker folder. If you are doing work in JupyterLab or notebooks, then it is recommended to use the following for auto-reloading changes to the Python files:

%load_ext autoreload
%autoreload 2
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].