Welcome to Entangled - A Leisure Discourse on Learning Quantum Computing
There is a lot of hype on the Internet today regarding the Quantum Computer. What is it? What capabilities will this deliver to computing? And will it replace the transistor-based CPU architecture we are accustomed to today?
Quantum computers have sparked my interest in the past couple of years. As a professional programmer and a hobbyist, I have written for my leisure coding processor emulators in python. These included a 6502 CPU and Nintendo emulators. With an old dusty degree in computational physics, I decided to embark on my experimentation in writing a quantum computer emulator. Unfortunately, I had yet to succeed in this endeavor beyond writing python code for wave equations. Once you had the wave equations code running - what then? How do you proceed in emulating a quantum processor? My false assumption was that a quantum processor would resemble its transistor-based predecessors and have general-purpose registers. And what of the address and data buses to transfer the information in and out of memory?Figure 1. 6502 Address and Data Bus from Machine Language for the Commodore 64 - Jim Butterfield.
I shelved the quantum computer emulator for some time. Then in early September of 2022, I received a call from the University of Chicago with the opportunity to earn a certification in Quantum Computing and Networks. My expectation entering the course was that this was my opportunity to learn quantum computing architecture. I anticipated it would be like my college courses, circa 1989, learning low-level machine and assembly language, as I knew on the old DEC PDP-11 and 8-bit home computers of the time. I enjoyed low-level computing and thought this would be an exciting venture in my next career chapter of programming. I was one of many senior programmers in the course looking for a career change in this emerging market. Likewise, we all entered the course with the misguided self-deception that this would be the next level course where we could stand on the shoulders of our career experiences in transistor-based CPU computer programming. This frame of mind is the expectation of all career programmers regarding their understanding of quantum computers.
An intense submersion in linear algebra and Dirac notation transpired in the first two weeks of the course. As I mentioned, I completed a Computational Physics and Mathematics degree in the late 80s. I had taken courses, over 30 years ago, in quantum mechanics as a prerequisite for earning my Physics degree. As a result, I had a lot of dust to blow off calculating quantum states.
So I have taken you down the long path of what a quantum computer isn't. What is a quantum computer? A quantum computer has no general-purpose registers, memory architecture, or data buses like the classical computing transistor-based counterpart we all know and love today in our computers, smartphones, smart televisions, and every other smart device we own. In its current emerging development state, a quantum computer is primarily a Quantum Processing Unit, a QPU, if you will, but I haven't heard anyone call it this yet. A quantum computer requires a classical (normal transistor-based) computer to handle everything external to the QPU. A QPU is like your computer's Graphics Processing Unit, GPU. Only a GPU has its memory and is transistor based. I am comparing the GPU to what to expect from the quantum computer. A better term is Quantum Processing Unit, QPU.
Another consideration of the differences between the classical computer architecture CPU and the QPU is how these process information. The CPU is based on transistor operations where a high or low voltage is represented as a one or a zero. These voltage levels are called bit settings. A bit represents a digit in a CPU. A bit can contain only the value of 0 or 1. It is a binary digit representation. Although CPUs can currently hold 64-bit values in their registers, let's keep the conversation simple to a 1-bit register. This generalization will assist us in comparing apples to quantum states when discussing their differences in design. The bit is either on or off in the classical computer CPU register, one or zero, respectively.
The bit representation from the digital transistor world of coding is no longer used. So again, we're comparing apples to quantum states. No more Apple, no more Wozniak. We literally have stepped into a completely different paradigm of thinking. A borderline mathematical-religious paradigm of thinking - quantum states! No longer is our machine bit in a state of zero or on, or on or off. We don't even have bits! The concept of binary digits is nowhere to be seen. In its place, we have unitary vectors of zeros and ones. With quantum superposition states, we can simultaneously have zero, one, or both values. The Bloch Sphere represents our qubit data.
Figure 3. The qubit unitary array representation of quantum states.
As you can see, the complexity of the qubit has just increased significantly. In digital transistor logic, the bit digit was either a zero or one, on or off. The qubit is not a digit. It is a unitary vector array representing vector states in Dirac notation.
Keep it classy and in superposition!




Comments
Post a Comment