[2024-06-16] Notable Recent Quantum Links, Sunday Edition

Futuristic quantum computer

It’s official: United Nations declares 2025 the International Year of Quantum Science and Technology – Physics World

(Monday, June 10, 2024) “The year will see quantum-related workshops, conferences, festivals and schools outreach activities”

How Classical AI is ‘Saving’ Quantum Computing: A Talk with IBM’s Ismael Faro

(Friday, June 14, 2024) “The Quantum Insider (TQI) is the leading online resource dedicated exclusively to Quantum Computing.”

Qiskit Global Summer School 2024 | IBM Quantum Computing Blog

“Qiskit Global Summer School gives you the tools you need to begin running utility-scale quantum experiments that push the limits of computation. Register today!”

My Recent Futurum Group Publications

The Futurum Group logo
This is the first posting. It includes all my Research Notes and Analyst Insights to date. In the future, it will just be what was published during the week.

Quantinuum Announces Breakthroughs for Quantum Computing – The Futurum Group

“Quantinuum paves the way to larger ion trap quantum computing systems by simplifying & multiplexing the control infrastructure for its qubits”

Quantum in Context: Rigetti Q4 2023 Earnings and Other Numbers – The Futurum Group

“Rigetti’™s expenses continue to far outweigh its revenue, though the company has made progress closing contracts with UK and US”

Quantum in Context: D-Wave Q4 2023 Earnings & Other Numbers – The Futurum Group

“D-Wave’™s expenses still far outweigh its revenue; it will need to add customers while demonstrating its annealing approach.”

Quantum in Context: A Qubit Primer – The Futurum Group

“This article introduces the key ideas and concepts of Qubits, the physical instantiation of the units of information in quantum computers.”

Microsoft & Quantinuum Create Real Logical Qubits – The Futurum Group

“Microsoft and Quantinuum announced a significant breakthrough in achieving real logical qubits with error detection and correction.”

UXL to Be an Open-Source Alternative to NVIDIA’™s CUDA? – The Futurum Group

“The NVIDIA CUDA platform will soon have competition from the Unified Acceleration Foundation’™s (UXL’™s) open-source alternative.”

The Case for On-Premises Quantum Computers – The Futurum Group

“Having an IBM Quantum System One at Rensselaer Polytechnic Institute (RPI) raises the profile of installing quantum computing systems onsite.”

Quantum in Context: Quantinuum and the Quest for More 9s – The Futurum Group

“Quantinuum announced a dramatic improvement in error rates that should lead to faster adoption of quantum error-correcting codes.”

Quantum in Context: Government Money Pours into Private Firms – The Futurum Group

“Learn how the Japanese & Australian governments have awarded significant funding to the US-based PsiQuantum & QuEra quantum computer companies”

Quantum in Context: IonQ Announces Q1 2024 Earnings – The Futurum Group

“Get underneath the earnings numbers IonQ announced for the first quarter of 2024. Revenue beat guidance, but bookings are low.”

Quantum in Context: Infleqtion Key to UK Quantum PNT Tech Test – The Futurum Group

“Infleqtion, BAE Systems, and QinetiQ announces the first successful flight test of UK-developed quantum navigation systems.”

Quantum in Context: IBM Extends Qiskit 1.0 via AI Tools – The Futurum Group

“IBM recently announces new features for Qiskit 1.0 which uses AI and GenAI for faster circuit development and execution.”

Rigetti Computing’™s Q1 2024 Earnings and 9 Qubits – The Futurum Group

“Learn about Rigetti Computing’™s earnings in the first quarter of 2024 and fidelity improvements and partnerships around its 9-qubit QPU.”

Quantum computing in my book Dancing with Python

My new book, Dancing with Python: Learn Python software development from scratch and get started with quantum computing, is now available from Amazon and other sources, and I recently posted the full table of contents. Though it is an introduction to Python, albeit with discussions of several advanced modules, it provides a unified approach with quantum computing.

My approach is described in the Preface:

How do you learn to code in this new world that involves both classical and quantum hardware?

One way to do it is to learn classical computing by itself. This is the traditional way of doing it, using a language such as C, C++, JavaScript, Java, Go, or Python. Along the way, you would learn how to use extra functionality in libraries of code along with the programming tools or from a third-party provider. Examples of these are the C++ Standard Library; the Java Platform, Enterprise Edition; the Python Standard Library; or the thousands of Python packages listed in the Python Package Index.

Once you have the philosophy, syntax, structure, and idioms of the classical programming language understood, you then learn quantum computing on top of that. For example, you could use the Qiskit open source quantum computing software development kit (SDK) along with Python. These mesh together and operate exceptionally well. Thousands of people are already Qiskit coders. If you know Python, this is a great approach.

But what if you are learning to code or have only a small amount of experience? What if I could offer you the chance to learn classical and quantum computing in a unified manner? Would it be useful if I could help you understand the concepts of both so that you don’t see them as different disciplines? That’s what I do in this book.

Teaching approach in Dancing with Python

I talk about aspects of quantum computing throughout the book and in many places I provide pointers to sections in my quantum computing book Dancing with Qubits. That book is not a prerequisite for Dancing with Python, but the referenced sections will help you learn more about the topics if you wish to go deeper.

I first talk about qubits, “quantum bits”, in section 1.11. The main chapters that discuss quantum computing are 9 and 11:


9 Understanding Gates and Circuits

Classical computers use logical gates to manipulate bits. Using them, we assemble circuits to implement more complicated processes like addition and multiplication. Eventually, we get all the software that runs on computers everywhere.

Quantum computers use qubits to significantly extend the power of bits, as we saw in section 1.11. We assemble these into quantum circuits to implement algorithms.

There is a strong connection between classical and quantum computing, and a quantum computing system is a classical computing system extended with one or more quantum devices. These devices are the physical implementations of qubits and the software and hardware that control them.

This chapter examines bits and qubits, gates that operate upon them, and how we assemble them into circuits.

9.1 The software stack
9.2 Boolean operations and bit logic gates
9.3 Logic circuits
9.4 Simplifying bit expressions
9.5 Universality for bit gates
9.6 Quantum gates and operations
9.7 Quantum circuits
9.8 Universality for quantum gates
9.9 Summary


11 Searching for the Quantum Improvement

By considering new approaches and getting clever, we can develop classical algorithms that are faster than you might have expected. Using quantum techniques, we can go a step further: perform some operations faster than seems possible.

This chapter compares classical and quantum search techniques to see how extending our basic information unit from the bit to the qubit can show remarkable improvements. Note that I only discuss mainstream “universal” quantum computing and not limited-purpose systems that perform operations like simulated annealing.

11.1 Classical searching
11.2 Quantum searching via Grover
11.3 Oracles
11.4 Inversion about the mean
11.5 Amplitude amplification
11.6 Searching over two qubits
11.7 Summary


If you wish to learn more about quantum computing after reading this book, I suggest you look at

Availability of my book Dancing with Python and its table of contents

Cover of book Dancing with Python by Robert S. Sutor
My new book Dancing with Python: Learn Python software development from scratch and get started with quantum computing is now available for purchase from Amazon and Packt Publishing.


Develop skills in Python by implementing exciting algorithms, including mathematical functions, classical searching, data analysis, plotting data, machine learning techniques, and quantum circuits.

Key Features

Learn Python basics to write elegant and efficient code

Create quantum circuits and algorithms using Qiskit and run them on quantum computing hardware and simulators

Delve into Python’s advanced features, including machine learning, analyzing data, and searching


Contributors

About the author
About the reviewer

Contents

List of Figures

Preface

Why did I write this book?
For whom did I write this book?
What does this book cover?
What conventions do I use in this book?
Get in touch

1 Doing the Things That Coders Do

1.1 Data
1.2 Expressions
1.3 Functions
1.4 Libraries
1.5 Collections
1.6 Conditional processing
1.7 Loops
1.8 Exceptions
1.9 Records
10 Contents
1.10 Objects and classes
1.11 Qubits
1.12 Circuits
1.13 Summary

I Getting to Know Python

2 Working with Expressions

2.1 Numbers
2.2 Strings
2.3 Lists
2.4 Variables and assignment
2.5 True and False
2.6 Arithmetic
2.7 String operations
2.8 List operations
2.9 Printing
2.10 Conditionals
2.11 Loops
2.12 Functions
2.13 Summary

3 Collecting Things Together

3.1 The big three
3.2 Lists
3.3 The joy of O(1)
3.4 Tuples
3.5 Comprehensions
3.6 What does “Pythonic” mean?
3.7 Nested comprehensions
3.8 Parallel traverse
3.9 Dictionaries
3.10 Sets
3.11 Summary

4 Stringing You Along

4.1 Single, double, and triple quotes
4.2 Testing for substrings
4.3 Accessing characters
4.4 Creating strings
4.5 Strings and iterations
4.6 Strings and slicing
4.7 String tests
4.8 Splitting and stripping
4.9 Summary

5 Computing and Calculating

5.1 Using Python modules
5.2 Integers
5.3 Floating-point numbers
5.4 Rational numbers
5.5 Complex numbers
5.6 Symbolic computation
5.7 Random numbers
5.8 Quantum randomness
5.9 Summary

6 Defining and Using Functions

6.1 The basic form
6.2 Parameters and arguments
6.3 Naming conventions
6.4 Return values
6.5 Keyword arguments
6.6 Default argument values
6.7 Formatting conventions
6.8 Nested functions
6.9 Variable scope
6.10 Functions are objects
6.11 Anonymous functions
6.12 Recursion
6.13 Summary

7 Organizing Objects into Classes

7.1 Objects
7.2 Classes, methods, and variables
7.3 Object representation
7.4 Magic methods
7.5 Attributes and properties
7.6 Naming conventions and encapsulation
7.7 Commenting Python code
7.8 Documenting Python code
7.9 Enumerations
7.10 More polynomial magic
7.11 Class variables
7.12 Class and static methods
7.13 Inheritance
7.14 Iterators
7.15 Generators
7.16 Objects in collections
7.17 Creating modules
7.18 Summary

8 Working with Files

8.1 Paths and the file system
8.2 Moving around the file system
8.3 Creating and removing directories
8.4 Lists of files and folders
8.5 Names and locations
8.6 Types of files
8.7 Reading and writing files
8.8 Saving and restoring data
8.9 Summary

II Algorithms and Circuits

9 Understanding Gates and Circuits

9.1 The software stack
9.2 Boolean operations and bit logic gates
9.3 Logic circuits
9.4 Simplifying bit expressions
9.5 Universality for bit gates
9.6 Quantum gates and operations
9.7 Quantum circuits
9.8 Universality for quantum gates
9.9 Summary

10 Optimizing and Testing Your Code

10.1 Testing your code
10.2 Timing how long your code takes to run
10.3 Optimizing your code
10.4 Looking for orphan code
10.5 Defining and using decorators
10.6 Summary

11 Searching for the Quantum Improvement

11.1 Classical searching
11.2 Quantum searching via Grover
11.3 Oracles
11.4 Inversion about the mean
11.5 Amplitude amplification
11.6 Searching over two qubits
11.7 Summary

III Advanced Features and Libraries

12 Searching and Changing Text

12.1 Core string search and replace methods
12.2 Regular expressions
12.3 Introduction to Natural Language Processing
12.4 Summary

13 Creating Plots and Charts

13.1 Function plots
13.2 Bar charts
13.3 Histograms
13.4 Pie charts
13.5 Scatter plots
13.6 Moving to three dimensions
13.7 Summary

14 Analyzing Data

14.1 Statistics
14.2 Cats and commas
14.3 pandas DataFrames
14.4 Data cleaning
14.5 Statistics with pandas
14.6 Converting categorical data
14.7 Cats by gender in each locality
14.8 Are all tortoiseshell cats female?
14.9 Cats in trees and circles
14.10 Summary

15 Learning, Briefly

15.1 What is machine learning?
15.2 Cats again
15.3 Feature scaling
15.4 Feature selection and reduction
15.5 Clustering
15.6 Classification
15.7 Linear regression
15.8 Concepts of neural networks
15.9 Quantum machine learning
15.10 Summary

Appendices

A Tools

A.1 The operating system command line
A.2 Installing Python
A.3 Installing Python modules and packages
A.4 Installing a virtual environment
A.5 Installing the Python packages used in this book
A.6 The Python interpreter
A.7 IDLE
A.8 Visual Studio Code
A.9 Jupyter notebooks
A.10 Installing and setting up Qiskit
A.11 The IBM Quantum Composer and Lab
A.12 Linting

B Staying Current

B.1 python.org
B.2 qiskit.org
B.3 Python expert sites
B.4 Asking questions and getting answers

C The Complete UniPoly Class

D The Complete Guitar Class Hierarchy

E Notices

E.1 Photos, images, and diagrams
E.2 Data
E.3 Trademarks
E.4 Python 3 license

F Production Notes

References

Other Books You May Enjoy

Index

Index Formatting Examples
Python function, method, and property index
Python class index
Python module and package index
General index

Poll on the subtitle of my next book, Dancing with Python

Packt will be publishing my next book, Dancing with Python, sometime around early September. From the draft preface:

Once you have the philosophy, syntax, structure, and idioms of the classical programming language understood, you then learn quantum computing on top of that. For example, you could use the Qiskit open-source quantum computing software development kit (SDK) along with Python. [QIS] These mesh together and operate exceptionally well. Thousands of people are already Qiskit coders. If you know Python, this is a great approach.

But what if you are learning to code or have only a small amount of experience? What if I could offer you the chance to learn classical and quantum computing in a unified manner? Would it be useful if I could help you understand the concepts of both so that you don’t see them as different disciplines? That’s what I do in this book.

One of the tricky things about writing a book is coming up with a good subtitle. It should be interesting, help with SEO, and make people want to explore more. Here are three candidate subtitles:

  • Learn to code using traditional and quantum computing techniques
  • A unified introduction to classical and quantum Python software development
  • Learn Python software development from scratch and get started with quantum computing

I would like you to help make the choice by taking this poll on LinkedIn. You can choose from among these options. Please note that if you happen to suggest something in the comments that we like and use, you are implicitly giving us all rights to do so without credit or remuneration. (Sorry for the legalize.)

Please vote!

IBM Quantum Composer and Lab – New tools to use now

IBM Quantum Composer and Lab

The IBM Quantum Experience is now two tools: the IBM Quantum Composer and the IBM Quantum Lab. In the first, you can create circuits by drag and drop, run them on a range of hardware and simulators backends, and visualize the results in several ways.

The IBM Quantum Lab is Jupyter-based and gives you the full power of that environment, plus the Qiskit open-source quantum software development kit.

You can use both at no charge with several real quantum computers, or access the advanced quantum systems if you have license to them within the IBM Quantum Network. Several new simulators are available in addition to qasm_simulator.

Catalog of hardware and simulators available from IBM Quantum

Call for papers: Education, Research, and Application of Quantum Computing – HICSS 2022

Education, Research, and Application of Quantum Computing

My IBM Quantum colleague Dr. Andrew Wack and I are hosting a minitrack at the Hawaii International Conference on System Sciences (HICSS) 2022.

The description of the minitrack is:

There is no question that quantum computing will be a technology that will spur breakthroughs in natural science, AI, and computational algorithms such as those used in finance. IBM, Google, Honeywell, and several startups are working hard to create the next generation of “supercomputers” based on universal quantum technology.

What exactly is quantum computing, how does it work, how do we teach it, how do we leverage it in education and research, and what will it take to achieve these quantum breakthroughs?

The purpose of this minitrack is to bring together educators and researchers who are working to bring quantum computing into the mainstream.

We are looking for reports that

  • improve our understanding of how to integrate quantum computing into business, machine learning, computer science, and applied mathematics university curriculums,
  • describe hands-on student experiences with the open-source Qiskit quantum software development kit, and
  • extend computational techniques for business, finance, and economics from classical to quantum systems.

It is part of the Decision Analytics and Service Science track at HICSS.

Please consider submitting a report and sharing this Call for Papers with your colleagues.

Some practical things you can do to learn about quantum computing

People often ask me “Where should I get started in order to learn about quantum computing?”. Here are several steps you can take. I work for IBM, so things I link to will often be to the IBM Quantum program. Also, I acknowledge that several of the links and videos toward the beginning involve me, but we’ll get through those quickly.

Watch some introductory videos

If you only watch one video, watch this one from WIRED with Talia Gershon:

This one with me is from early 2019 and discussed the IBM Q System One:

Finally, this video from CNBC with Professor Scott Aaronson of the University of Texas Austin, Martin Reynolds of Gartner, and me brings things up to date in January, 2020. Note that I personally do not support many of the statements about “Quantum Supremacy” (horrible label, supercomputers do have massive amounts of storage, off-by-15-million-percent math error):

Get a book

If you are really just getting started and want to systematically work through the required math at an easy and conversational pace, my book Dancing with Qubits should prepare you for more advanced material and give you a start to reading research papers. (Shameless self-plug.)

If you are a hard core physics and/or computer science person, you want to have Quantum Computation and Quantum Information: 10th Anniversary Edition 10th Anniversary ed. Edition by Michael A. Nielsen and Issac L. Chuang in your library. It’s a little old by now, but if you want to end up doing quantum computing research, you will likely have to become very familiar and comfortable with the contents. Other books to consider are Quantum Computing: A Gentle Introduction (good on algorithms, “gentle” is subjective!) and Quantum Computing for Computer Scientists (a bit dated and make sure you get a copy of the errata).

Play a game

Hello Quantum is available for Apple iOS and Android and will teach you the basics of how quantum gates and circuits work.

Hello Quantum screen shots

Build and run circuits with a real quantum computer

Quantum simulators have their place for basic education, experimentation, and debugging. Note, though, that a quantum simulator is to real quantum computer hardware as a TV console flight simulator is to a real plane. If you want a job as a pilot, I would prefer you knew how to fly an actual airplane.

The easiest way to get started without writing code is with the IBM Quantum Composer within the IBM Quantum Experience.

The IBM Quantum Experience has over 200,000 registered users, so you’ll be joining a very large community of beginner, intermediate, and advanced users.

IBM Quantum Composer

Learn Python

If you are going to write quantum computing code, learn Python. As I write this, the latest version is 3.8. You want Python 3, not Python 2.

Learn Jupyter Notebooks

This is the modern way of developing full documents with interactive code, executions, graphics, videos, and visualizations. It’s used within the IBM Quantum Experience but also many other computational and AI applications. You are mainly interested in how to use it through a browser, not how to run and maintain the console.

Website (introductory): Introduction to Jupyter Notebooks

Write quantum computing code in Qiskit

Qiskit is the leading open source platform for developing quantum computing code and applications. It’s available on Github and available under the Apache 2,0 license. It’s had over 300,000 downloads but I’m recommending you use it through your browser on the IBM Cloud. As with the Composer, it is available through the IBM Quantum Experience.

Whether you want to download Qiskit or use it online, the easiest way to get get started is to watch the series of videos by Abe Asfaw.

From there, you can watch the other videos and also learn about the Qiskit Community.

At this point you are ready to work your way through the online open source Learn Quantum Computing through Qiskit.Open source Qiskit textbook

My Visual Studio Code extensions for LaTeX and Python

I’m in the final stages of writing a book about quantum computing using LaTeX and I also do a lot of Python programming when I get a chance. A couple of years ago, I decided to try using the Visual Studio Code editor and I just love it. I’ve used dozens of programming editors in my life (vi, not emacs, thank you very much), and VSCode has the best functionality of all of them.

One of its best features is its extension architecture. Though I experiment with various extensions occasionally, I keep a core set. If I am going to so something special such as editing Markdown text, I will use an extra extension or two until I am done with the task and then uninstall them.

These are the extensions I use now for LaTeX editing and Python coding. They are all available in the editor through the Marketplace.

  • Blank Line Organizer – removes extraneous extra lines that creep into text while editing
  • Bookmarks – as you would suspect, allows you to set a bookmark somewhere in a file and then jump back to it quickly
  • Bracket Pair Colorizer 2 – paints matching parentheses, brackets, and curly brackets in the same color. I’ve tried the original and Rainbow Brackets, and none of these three are perfect. These version is the fastest and mostly best.
  • change-case – provides many options for changing the case (e.g., uppercase, lowercase, sentence case) of selected text
  • Code Runner – helps execute code in the environment
  • Code Spell Checker – tells you when a word has questionable spelling, though not good on suggesting alternatives. You can put comments in the file saying which words to ignore or store them in a file in the folder.
  • LaTeX Workshop – the workhorse large set of code to assist in editing LaTeX markup. I don’t use all the features and I still run things like pdflatex from the command line, but it is hugely helpful. As an aside, you probably want to get latexindent running on your machine if possible.
  • latex-count – simple add-on that shows how many non-markup words are in your document
  • MagicPython – syntax highlighter for Python
  • Python – the main set of code providing Python editing and execution
  • qiskit-vscode – editing and execution support for the open source Qiskit quantum computing development platform
  • Rewrap – rewraps lines of text. Useful when LaTeX content gets too ragged.
  • Settings Sync – saves your editor setting on GitHub so you can have the same environment across machines.

My #BCTECHSummit 2019 talk

Bob Sutor speaking #BCTECHSummit in Vancouver in March, 2019
Photo courtesy of IBM Canada

I spoke this morning about quantum computing at #BCTECHSummit in Vancouver, British Columbia. Here are some of the points I emphasized:

  • The mainstream efforts including IBM Q are universal quantum computing systems with the eventual goal of full fault tolerance.
  • However, we believe “Quantum Advantage,” where we show significant improvement over classical methods and machines, may happen in the next decade, well before fault tolerance.
  • Don’t say “quantum computing will.” Say it “might.” Publish your results and your measurements.
  • Since May, 2016, IBM has hosted the IBM Q Experience, the most advanced and most widely used quantum cloud service. Over 100,000 users have executed close to 9 million quantum circuits. There is no charge for using the IBM Q Experience.
  • Qiskit is the most advanced open source framework for programming a quantum computer. It has components that provide high level user libraries, low level access, APIs for connecting to quantum computers and simulators, and new measurement tools for errors and performance.
  • Chemistry, AI, and cross-industry techniques such as Monte Carlo replacements are the areas that show great promise for the earliest Quantum Advantage examples.
  • The IBM Q Network is built around a worldwide collection of hubs, direct partnerships, academic memberships, and startups working accelerate educations and to find the earliest use cases that demonstrate Quantum Advantage.
  • Last week IBM Q published “Cramming More Power Into a Quantum Device” that discussed the whole-system Quantum Volume measurement, how we have doubled this every year since 2017, and how we believe there is headroom to continue at this pace.
Verified by MonsterInsights