My Journey Into Quantum Computing Has Given Me a Newfound Appreciation for the Incredible Intellectual Power of Classical Computing
Quantum computers may have a dramatic performance advantage over classical computers, at least in theory, eventually, but classical computers still have a mind-boggling intellectual advantage over quantum computers. This informal paper will highlight the various aspects of classical computing which give it such an incredible intellectual advantage over quantum computing.
Topics discussed in this paper:
- In a nutshell
- Background
- My tech background
- My quantum journey
- Summary of the intellectual advantages of classical computing
- Intellectual power, intellectual advantage, and intellectual leverage are synonyms here
- Classical computing is very intuitive, while quantum computing is anything but intuitive
- Summary of the technical advantages of classical computing
- Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated
- Other advantages of classical computing
- How to generate true random numbers on a classical computer
- What is quantum computing?
- Limitations of quantum computing
- Quantum computer as a coprocessor rather than a full-function computer
- Contrasts between classical and quantum computing
- Many things that a quantum computer cannot do that classical computers can do easily
- Quantum-inspired algorithms and quantum-inspired computing
- So many wonderful and even delightful classical features
- Yes, but besides all of THAT, what have the bloody Romans EVER done for us?!
- Universal quantum computers will combine all features of both quantum and classical computers, but not soon
- Quantum computing still has some potential, but remains in the pre-commercialization stage with plenty of research, prototyping, and experimentation still required
- Conclusions
In a nutshell
- Quantum computers may have a dramatic performance advantage over classical computers, at least in theory, eventually, but classical computers still have a mind-boggling intellectual advantage over quantum computers.
- Quantum computers offer exactly two unique capabilities…
- A quantum computer has the ability to generate and operate on true random numbers.
- A quantum computer offers quantum parallelism. The ability to iterate a modest-sized quantum computation over a large solution space.
- But a classical computer can do many things that a quantum computer cannot.
- And even many of the tasks that a quantum computer could in theory do, can be done much easier on a classical computer.
- Many intellectual advantages of classical computing…
- Intellectual power, intellectual advantage, and intellectual leverage are synonyms here.
- More intuitive. Closer to how the human mind operates.
- Closer to the language of mathematics. As used in so many disciplines and areas of life.
- More flexible and extensible.
- Theory of classical computing is much more mature and comprehensive.
- Richer, broader, and deeper range of computer hardware and software.
- A wealth of great classical algorithms and great classical applications are readily available, as well as examples for how to do great classical algorithms and great classical applications.
- Easier to learn and easier to train people.
- Richer, broader, and deeper range of books, papers, education, training, and conferences are readily available.
- Much larger talent pool and much larger potential talent pool.
- Many technical advantages. Too many to even summarize here — read the subsequent sections.
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated.
- Classical computing is very intuitive, while quantum computing is anything but intuitive…
- Classical computing is modeled on the human mind and mental processes.
- The fundamentals of classical computing, at least at the high-level programming language level (ala FORTRAN, et al) are quite intuitive, with mathematics-style algebraic expressions, intuitive high-level data types and variables, intuitive arrays of data, and simple control structures, while, over in the world of quantum computing, nothing is intuitive, with nothing comparable to mathematics-style algebraic expressions, high-level data types and variables, arrays of data, or simple control structures.
- Absolutely no knowledge of physics, especially quantum mechanics and its attendant math is needed for classical computing.
- Everything in the world of classical computing is deterministic, while everything in the world of quantum computing is probabilistic.
- Getting data in and out of classical software is quite easy, while getting data in and out of a quantum algorithm is quite messy and difficult.
- Many technical advantages of classical computing…
- Rich data types and data structures, files, file systems, databases, and search engines.
- Rich control structures: loops, conditionals, functions with parameters, and recursive functions, and object-oriented programming.
- Algebraic expressions with arithmetic operations, transcendental functions, math functions, and boolean logic.
- High-level programming models and a wide range and variety of high-level and natural programming languages.
- Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers.
- Easy to represent problem solutions as actual code.
- Even early, primitive programming languages such as FORTRAN were much more capable than what is available today for quantum computing.
- Rich ecosystem of class and function libraries, application frameworks, and sophisticated design patterns.
- Virtual memory and virtual machines.
- Support for very sophisticated and very complex algorithms and applications.
- Support for Big Data.
- Sophisticated software methodologies.
- Threads, processes, and interprocess communication and data streaming.
- Pseudo-random number generation and a variety of special hardware or services that can generate true random numbers.
- Multiprocessor systems, specialized processing units such as graphical processing units (GPUs), and supercomputers.
- Personal computers, servers, embedded computers.
- Networking with computing clusters, local area networks, distributed computing, wide area networks, the Internet, the Web, network services, web services, and cloud computing.
- Real-time processing and real-time control.
- Math packages, statistical packages, data science packages, tools, and languages.
- Spreadsheets, calculators, word processing, graphics design, and hypertext.
- Mature suites of software development tools including great code analysis tools and great debugging capabilities.
- Many things that a quantum computer cannot do that classical computers can do easily.
- Quantum-inspired algorithms and quantum-inspired computing. Inspired by quantum computing, but adapted and implemented on a classical computer.
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated…
- Complex and sophisticated operating systems.
- Complex and sophisticated programming models, programming languages, compilers, and software development tools.
- Complex and sophisticated personal productivity applications.
- Complex and sophisticated networks and networked applications and networked services.
- Complex and sophisticated search engines.
- Complex and sophisticated social media applications and services.
- Distributed computing
- Software exploiting specialized processing units such as graphical processing units (GPUs).
- Supercomputing.
- Complex and sophisticated weather and storm forecasting.
- Complex and sophisticated artificial intelligence (AI) tools, systems, and applications.
- Complex and sophisticated robots, robotic systems, and autonomous systems.
- Complex and sophisticated scientific applications.
- Complex and sophisticated engineering tools and applications.
- Complex and sophisticated business applications.
- Easy to use and sophisticated fill-in forms capabilities.
- Easy to use email and email applications and mailing list processing.
- Easy to use, sophisticated, and easy to develop user interfaces and user experience capabilities.
- Complex and sophisticated finance applications.
- Physics, chemistry, and other physical science applications.
- DNA analysis, drug discovery, material design, medical imaging.
- Rich array of software and tools for imaging, video, and sound, for creation, manipulation, distribution, and consumption.
- Chess, Go, and video games.
- Proving mathematics theorems.
- Anybody can develop BASIC, Java, JavaScript, and Python applications.
- Relatively easy to develop sophisticated smartphone applications for everyone to use.
- Enabled the space program and allowed us to fly to the moon and return safely.
- Enabled us to discover and produce many life-saving drugs.
- Enabled us to design, build, and operate many amazing machines, vehicles, buildings, structures, and systems of all types.
- Other advantages of classical computing…
- Vast data centers.
- Very tiny and simple but very powerful embeddable computers.
- Mature technology.
- Not dependent on advances in physics for innovations.
- Ongoing evolution of classical computing, with plenty of runway still ahead.
- Contrasts between classical and quantum computing…
- A classical computer is a full-function computer, while a quantum computer is more of a coprocessor, capable of much more limited functions than even the simplest classical computer.
- Quantum state is very sensitive and difficult to sustain, with a fairly short life, while classical states are very robust, resilient, and trivial to sustain, indefinitely.
- Quantum states are not practical to place in long-term storage, while classical information is easy to keep in long-term storage.
- It’s very easy to get started in classical computing. While it’s very difficult to get started in quantum computing.
- Classical computing is quite easy, while quantum computing is a real challenge.
- Classical computing is very friendly towards and supportive of abstraction, while quantum computing and abstraction just don’t mix.
- Quantum computers excel at generating and working with true random numbers, while classical computers cannot generate true random numbers without special additional hardware.
- Classical computers can easily be miniaturized and are quite cheap and easy to use, while quantum computers are big, bulky, heavy, difficult to operate and use, and very expensive.
- Classical computers are very mature and proven, while quantum computers are still in their infancy, and quite unproven.
- Classical computing software is perfectly happy to run forever, indefinitely, while quantum algorithms execute a sequence of instructions (gates) and then produce a result.
- Classical computing has so many wonderful and even delightful features.
- Universal quantum computers will combine all features of both quantum and classical computers, but not soon.
- Quantum computing still has some potential, but remains in the pre-commercialization stage with plenty of research, prototyping, and experimentation still required.
Background
My journey into quantum computing has made me very aware of the tremendous potential for a quantum advantage in performance of quantum computing over classical computers, while at the same time reminding me of the many features of classical computing which are either not present at all in quantum computing or much more difficult than with a classical computer.
I’ve been deeply involved with classical computing for over 50 years now (53 years now, since I was in the 10th grade in high school in 1970). Although I missed out on the first new generations of classical computing — unit record equipment with punched cards, electromechanical relays, vacuum tubes, several generations of transistors and early integrated circuits, including the many advances of computing during the 1960’s, I got started with FORTRAN, BASIC, PL/1, and assembly language in the early 1970’s. And that was only the beginning.
By the time research in quantum computer technology had advanced to the point where IBM could offer five qubits in the cloud, in 2016, I was seriously overdue for something new and truly novel. By 2017 I was ready to make the leap.
Now, after over five years of immersion in quantum computing, which has advanced significantly in many ways, but remains lackluster in many other ways, I realized that despite the awesome potential and promises made for quantum computing, focused on an exponential advantage in performance, that stodgy old classical computing really has been quite amazing from the perspective of intellectual advantage or intellectual leverage, in contrast with the promised quantum advantage in performance of quantum computing.
Quantum computing may do a few things much better (quantum parallelism, probabilistic computing, generation of random numbers), but classical computing has so many features to offer that are not available in quantum computing, yet, and may never be.
Many applications — most applications — simply don’t have the degree of computational intensity that warrants a quantum computer. Even handheld devices now have tremendous computational capabilities. A typical tablet, laptop, or high-end server or even a commodity server generally has enough computational power for most applications. And small, medium, large, or very large clusters of commodity or high-end servers also generally have enough power for most applications. And large distributed networks of servers can handle even more intensive applications.
And while quantum computers (in theory) can dramatically outperform even the largest classical supercomputers, the computations must still be fairly simple since quantum computers do not possess the computational sophistication and diversity of computation and data processing that is present in even the most simple classical computers.
Large classical applications and operating systems can have tens or hundreds of thousands of lines of code, or even millions or tens of millions of lines of code, while a typical quantum circuit might have only dozens or hundreds of lines of code (gates.) That’s an incredible level of sophistication for classical computer software relative to quantum computer software.
After decades of working with classical computers, I had grown bored with classical computing.
So when quantum computers seemed on the verge of becoming the next big new thing, it was a no-brainer to leap from the classical computing ship over to the new and exciting quantum computing ship.
Quantum computing does have some exciting new potential, but the capabilities of quantum computers are quite limited. Much more constrained and limited than classical computers.
It didn’t take many months of immersion in quantum computing for me to realize that there were plenty of capabilities in classical computers that were simply not present in quantum computers.
Quantum computers offer exactly two unique capabilities:
- The ability to generate and operate on true random numbers.
- Quantum parallelism. The ability to simultaneously iterate a modest-sized quantum computation over a large solution space.
That’s it. That’s all that a quantum computer brings to the table.
For some more color on that, see my informal paper:
- Other Than Generating Random Numbers and Greater Performance, There Isn’t Anything That a Quantum Computer Can Compute That a Classical Computer Can’t Compute
- https://jackkrupansky.medium.com/other-than-generating-random-numbers-and-greater-performance-there-isnt-anything-that-a-quantum-950ab0162da9
With classical computers you can feel like you’re commanding an aircraft carrier or a head of state with a tremendous range of capabilities at your disposal, but with quantum computers you feel like you’re alone deep in a trench or a mine, digging with your bare fingers.
My tech background
I won’t go into detail here, but for some details of my tech background, see my LinkedIn profile:
My quantum journey
I began my journey into quantum computing — my quantum journey — about five and a half years ago, in November 2017.
My main motive was not to actually use a quantum computer, but simply to discern whether the technology really worked and what it really did.
Overall, I’m interested in the capabilities, limitations, and issues related to quantum computing — or any other technology. For more discussion of this, see my informal paper:
- My Interests in Quantum Computing: Its Capabilities, Limitations, and Issues
- https://jackkrupansky.medium.com/my-interests-in-quantum-computing-its-capabilities-limitations-and-issues-45577c4a251d
For details of the first stage of my quantum journey, see my informal paper from August 2020:
- My Journey into Quantum Computing
- https://jackkrupansky.medium.com/my-journey-into-quantum-computing-9c727ec2e0ff
And my follow up after that, from September 2022:
- Preparing for the Next Stage of My Quantum Journey
- https://jackkrupansky.medium.com/preparing-for-the-next-stage-of-my-quantum-journey-4191b4ec1e18
Once I post this current informal paper, in May 2023, I’ll be embarking on a next stage of my quantum journey as of June 1, 2023. I may simply take the summer off, or not, but I have no expectations of further long-form writing related to quantum computing in the coming months.
Summary of the intellectual advantages of classical computing
Classical computers have done a great job, even a fantastic job, of enabling people to do truly amazing things, far beyond what they could do by themselves without classical computers. I call this intellectual leverage — classical computers give people an intellectual advantage. People experience, feel, and sense the intellectual power that they get from classical computing.
Some of the intellectual advantages of classical computing over quantum computing include but are not limited to:
- More intuitive. Closer to how the human mind operates.
- Closer to the language of mathematics. As used in so many disciplines and areas of life.
- More flexible.
- More extensible.
- Personal productivity.
- Theory of classical computing is much more mature and comprehensive.
- Richer, broader, and deeper range of computer hardware.
- Richer, broader, and deeper range of computer software.
- A wealth of great classical algorithms and great classical applications are readily available.
- A wealth of examples for how to do great classical algorithms and great classical applications.
- Easier to learn.
- Easier to train people.
- Richer, broader, and deeper range of books, papers, education, training, and conferences are readily available.
- Much larger talent pool.
- Much larger potential talent pool.
- Many technical advantages.
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated.
Intellectual power, intellectual advantage, and intellectual leverage are synonyms here
The title of this informal paper references intellectual power, while most references herein are to intellectual advantage, with an occasional reference to intellectual leverage. For all intents and purposes herein, all three terms are synonyms.
Intellectual advantage is used to contrast with quantum advantage.
Classical computing is very intuitive, while quantum computing is anything but intuitive
Classical computing is very intuitive in a number of ways:
- Classical computing is modeled on the human mind and mental processes. It’s more intuitive by its nature.
- The fundamentals of classical computing, at least at the high-level programming language level (ala FORTRAN, et al) are quite intuitive, with mathematics-style algebraic expressions, intuitive high-level data types and variables, intuitive arrays of data, and simple control structures.
- Meanwhile, over in the world of quantum computing, nothing is intuitive, with nothing comparable to mathematics-style algebraic expressions, high-level data types and variables, arrays of data, or simple control structures.
- Absolutely no knowledge of physics, especially quantum mechanics and its attendant math is needed for classical computing. The details of transistors do rely on physics, but no software developer or user needs to know anything about how transistors operate, or even that they exist. No need to even know about complex numbers — unless your application domain requires it.
- Everything in the world of classical computing is deterministic. Two plus two is always four.
- While everything in the world of quantum computing is probabilistic. Nothing is deterministic — there is always uncertainty.
- Getting data in and out of classical software is quite easy.
- While getting data in and out of a quantum algorithm is quite messy and difficult.
Summary of the technical advantages of classical computing
Quantum computing is all about the qubits, while classical computing is not all about the classical bits, but about higher-level abstractions:
- Numeric data types. Integers, real numbers, complex numbers. Even Big Numbers of arbitrary size and precision, beyond the native binary data types.
- Text data types. Characters and strings, words, and keywords. Pattern matching and regular expressions.
- Algebraic expressions. Very similar to those of mathematics.
- Arithmetic operations. Identical to those of mathematics.
- Transcendental functions. Sine, cosine, tangent, et al. Identical to those of mathematics.
- Math functions. Square root, logarithms, exponentials, et al, for integer, real, and complex numbers. Again, identical to those of mathematics.
- Able to calculate pi, e, transcendental functions, infinite Taylor series, and irrational numbers to an extremely and arbitrarily large number of digits. Even in the trillions of digits.
- Boolean logic. Distinct from how computers operate internally.
- High-level programming models. No need to be concerned with bit-level programming.
- Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers.
- Wide range and variety of high-level programming languages. Again, no need to be concerned with bit-level programming. Meet the needs of a wide range of skill levels and application domain requirements.
- Natural programming languages. Syntax, concepts, vocabulary, and structure which is closer to how people think and communicate — and calculate.
- Easy to represent problem solutions as actual code.
- Even early, primitive programming languages such as FORTRAN were much more capable than what is available today for quantum computing.
- Loops.
- Conditionals.
- Functions with parameters.
- Recursive functions.
- Rich data types and data structures. Arrays, matrices, tables, lists, trees, graphs, and maps.
- Modular programming.
- Object-oriented programming. Classes with data and method functions. Hierarchy and inheritance. Encapsulation, polymorphism, and function overrides.
- Files. Persistent storage of data.
- File systems. Organize files as directories or folders. Use mnemonic names.
- Databases. Structured persistent storage of data. Access by keys. Access by data values. Tables. Indices. Specialized languages for designing, creating, and accessing databases, such as SQL and PL/SQL.
- Search engines. Keyword search. Ordering by relevance or date. Clustering by content or characteristics. Including some AI capabilities.
- Rich ecosystem of class and function libraries.
- Wealth of existing sophisticated design patterns.
- Virtual memory.
- Virtual machines.
- Support for very sophisticated and very complex algorithms and applications.
- Support for Big Data. Megabytes, gigabytes, terabytes, and beyond. And large databases.
- Sophisticated software methodologies.
- Rich application frameworks. At both the application and algorithm levels.
- Threads, processes, and interprocess communication and data streaming.
- Pseudo-random number generation. Not as perfect as the true random numbers which quantum computers can trivially generate, but good enough for most applications.
- Variety of special hardware or services that can generate true random numbers. A Turing machine cannot generate true random numbers, but a variety of special hardware techniques can, and are readily accessible through classical hardware I/O.
- Multiprocessor systems. Enable parallelism.
- Specialized processing units such as graphical processing units (GPUs).
- Supercomputers.
- Personal computers, desktops and laptops, tablets, smartphones, servers, embedded computers.
- Computing clusters.
- Local area networks.
- Distributed computing.
- Wide area networks.
- Internet.
- Web.
- Network services.
- Web services.
- Cloud computing. And services.
- Real-time processing. Direct input from sensors.
- Real-time control. Industrial automation, running factories, chemical plants, power plants, vehicles, aircraft, spacecraft.
- Interactive operation. Personal computers, personal productivity applications, tablets, smartphones. Using keyboards, display screens for text, images, and video, speakers, positioning devices and touch screens, voice, sound, image, and video input.
- Autonomous operation. Operating systems, servers, services, software agents, AI systems. Robots, self-driving cars, satellites, Internet of Things, appliances.
- Math packages. For example, Mathematica. And libraries.
- Statistical packages. Libraries, tools, and interactive software.
- Data science packages, tools, and languages.
- Spreadsheets.
- Calculators.
- Word processing. Text editing, text formatting, spelling and grammar tools.
- Graphics design. Photoshop, et al.
- Hypertext.
- Great debugging capabilities.
- Relatively easy to debug even without the more sophisticated debugging tools.
- Great code analysis tools.
- Mature suites of software development tools.
- Many things that a quantum computer cannot do that classical computers can do easily.
- Quantum-inspired algorithms and quantum-inspired computing. Inspired by quantum computing, but adapted and implemented on a classical computer.
Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers
Although the high-level programming models of classical computers is a key intellectual advantage over quantum computers, it is worth noting that even the primitive machine language of early classical computers offered much greater intellectual advantage than the low-level programming model of quantum computers. For example:
- Explicit registers, matching the abstractions of integers, characters, and real numbers. No need to be concerned about bits for the common data types.
- Full complement of arithmetic and boolean logic.
- Full complement of control flow. Conditional execution, branching, looping, and function calls, including recursion.
- No onerous coherence time constraint.
- Significant amount of memory and even persistent storage.
- Easy to input and output data. In the high-level data types.
- Easy to debug code. Single step and examine registers and memory.
- Sophisticated control panels. With all those lights and switches, so that you could see and control the activity of your code. The full state of your code and data were both visible and could be changed, interactively. People could feel that they were in charge.
Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated
The range of complexity and sophistication of software for classical computers include, but is not limited to:
- Complex and sophisticated operating systems.
- Complex and sophisticated programming models, programming languages, compilers, and software development tools.
- Complex and sophisticated personal productivity applications.
- Complex and sophisticated networks and networked applications and networked services.
- Complex and sophisticated search engines.
- Complex and sophisticated social media applications and services.
- Distributed computing.
- Software exploiting specialized processing units such as graphical processing units (GPUs).
- Supercomputing.
- Complex and sophisticated weather and storm forecasting.
- Complex and sophisticated artificial intelligence (AI) tools, systems, and applications.
- Complex and sophisticated robots, robotic systems, and autonomous systems.
- Complex and sophisticated scientific applications.
- Complex and sophisticated engineering tools and applications.
- Complex and sophisticated business applications.
- Easy to use and sophisticated fill-in forms capabilities.
- Easy to use email and email applications and mailing list processing.
- Easy to use, sophisticated, and easy to develop user interfaces and user experience capabilities.
- Complex and sophisticated finance applications.
- Physics, chemistry, and other physical science applications.
- DNA analysis, drug discovery, material design, medical imaging.
- Rich array of software and tools for imaging, video, and sound, for creation, manipulation, distribution, and consumption.
- Chess, Go, and video games.
- Proving mathematics theorems.
- Anybody can develop BASIC, Java, JavaScript, and Python applications.
- Relatively easy to develop sophisticated smartphone applications for everyone to use.
- Enabled the space program and allowed us to fly to the moon and return safely.
- Enabled us to discover and produce many life-saving drugs.
- Enabled us to design, build, and operate many amazing machines, vehicles, buildings, structures, and systems of all types.
Other advantages of classical computing
- Vast data centers. Centralizing system management. Simplifying system management for users, managers, and customers.
- Very tiny and simple but very powerful embeddable computers.
- Mature technology. Not waiting for deep research and a large number of advances before any significant progress can be made.
- Not dependent on advances in physics for innovations. For either software or computer architecture. Much research at the raw physics level is needed to pursue innovations in quantum computers.
- Ongoing evolution of classical computing, with plenty of runway still ahead. This year we can do more than we could do last year — and at a lower cost. And next year we’ll be able to do more than we can do today — and at a lower cost. And lower cost means that even larger distributed systems can be utilized with each passing year. Moore’s Law has been a reliable path to ever-increasing power of classical computer systems. Granted, Moore’s Law may be dissipating, but even today, we can count on ever-more powerful and cheaper computers with each passing year. And even if the power of individual computers does not advance dramatically in a given year as was the case under Moore’s Law, we can still deploy and utilize larger distributed computing clusters with each passing year.
How to generate true random numbers on a classical computer
Most applications which require random numbers can function perfectly well using pseudo-random numbers, and don’t need the kind of true random numbers that a quantum computer can trivially generate.
In fact, a Turing machine cannot generate true random numbers since they are not mathematically computable, which is all that a Turing machine can compute or generate.
But, there are a variety of special hardware or external services that can in fact generate true random numbers for the few applications which really need them.
For more details, including a list of the methods, mechanisms, special hardware, and services for generating true random numbers, see my informal paper:
- Quantum Advantage Now: Generation of True Random Numbers
- https://jackkrupansky.medium.com/quantum-advantage-now-generation-of-true-random-numbers-237d89f8a7f2
What is quantum computing?
Just for reference, what exactly is a quantum computer?
For the briefest definition of quantum computing, see my elevator pitch:
- Elevator Pitch for Quantum Computing
- https://jackkrupansky.medium.com/elevator-pitch-for-quantum-computing-4bcecbec7e3d
For a much more detailed view of quantum computers, see my informal paper:
For a much more detailed view of quantum computing, beyond the purely functional capabilities of the hardware of a quantum computer system, including quantum algorithms, quantum applications, and the whole process and ecosystem for producing and exploiting quantum algorithms and applications, see my informal paper:
Limitations of quantum computing
Besides the lack of the wealth of intellectual advantages of classical computing, quantum computing has some additional limitations, including:
- Quantum computer as a coprocessor rather than a full-function computer. Most quantum application code will run on a classical computer with only selected functions (algorithms, or portions of algorithms) offloaded to a quantum processor.
- Very low-level programming model. Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers.
- Not much in the way of rich algorithmic building blocks.
- Everything must be expressed in terms of raw physics.
- All operations must be reversible.
- No fan-in allowed.
- No fan-out allowed.
- No-cloning theorem precludes copying data.
- No persistence.
- No I/O.
- No mass storage.
- No file systems.
- No databases.
- No network access.
Quantum computer as a coprocessor rather than a full-function computer
We commonly refer to a quantum computer as if it was a full-function computer system, but it falls far short of that. There are many functions which can be performed with even the simplest classical computer which are beyond what is possible with even the best quantum computers. But the whole point of a quantum computer or quantum processor if you will is that it performs only a small fraction of what a classical computer can do, but it performs that fraction extremely well, even far better than even the best classical computers or even the best classical supercomputers.
Most of the function of a typical quantum application is performed on a classical processor, and only a small fraction of its function is offloaded to a quantum processor (quantum computer).
The quantum computer (quantum processor) acts as a coprocessor (auxiliary processor). The term coprocessor is a synonym for auxiliary processor.
This is similar to the way that graphical functions can be offloaded to a graphics processing unit (GPU).
So the bulk of the quantum application is processed by the classical computer as the main processor with a small fraction of the function offloaded to the quantum processor (quantum computer) as a coprocessor.
In short, what we commonly refer to as a quantum computer or quantum processor or quantum processing unit or QPU is in fact an auxiliary processor or coprocessor.
Contrasts between classical and quantum computing
- A classical computer is a full-function computer. While a so-called quantum computer is more of a coprocessor, capable of much more limited functions than even the simplest classical computer. A quantum computer executes relatively small computations — over a potentially very large solution space, while a classical computer is capable of executing relatively large and complex computations, with complex data structures and databases.
- Quantum state is very sensitive and difficult to sustain, with a fairly short life. While classical states are very robust, resilient, and trivial to sustain, indefinitely.
- Quantum states are not practical to place in long-term storage. While classical states are easy to keep in long-term storage.
- It’s very easy to get started in classical computing. While it’s very difficult to get started in quantum computing — beyond trivial, toy-like quantum algorithms.
- Classical computing is quite easy. Quantum computing is a real challenge.
- Classical computing is very friendly towards and supportive of abstraction. Such as modules, processes, classes, nested and recursive functions, and object-oriented programming. While quantum computing and abstraction just don’t mix. All abstraction has to be stripped away, so that all operations are expressed in the raw language of physics.
- Quantum computers excel at generating and working with true random numbers. While classical computers cannot generate true random numbers without special additional hardware, they do quite well with pseudo-random numbers, which can easily be generated using just a little clever mathematics, and are good enough for most applications.
- Classical computers can easily be miniaturized. Even to fit comfortably in your office, in your home, on your desk, on your lap, in your hand, on your wrist, in your car, and in other non-intrusive form factors. And at very low cost. And very easy to operate. While quantum computers are big, bulky, heavy, difficult to operate and use, and very expensive.
- Classical computers are very mature and proven. While quantum computers are still in their infancy, and quite unproven.
- Classical computing software is perfectly happy to run forever, indefinitely. While quantum algorithms execute a sequence of instructions (gates) and then produce a result. Classical computing can implement operating systems, office automation applications, database and file servers and repositories, and web services, all of which run continuously until told to terminate. Quantum computing is task-oriented, focused on relatively discrete and short computations.
Many things that a quantum computer cannot do that classical computers can do easily
Besides many of the specific features of classical computers that give them an intellectual advantage over quantum computers, there are many tasks that quantum computers can’t do.
Examples include:
- Computing pi to an arbitrarily large number of digits.
- Computing trigonometric functions (e.g., SIN, COS, TAN) to an arbitrarily large number of digits.
- Computing irrational numbers (e.g., SQRT(2)) to an arbitrarily large number of digits.
- Computing factorials for large, arbitrary numbers.
- Computing exponentials for large or non-integer numbers to an arbitrarily large number of digits.
- Computing Taylor series expansion for an arbitrarily large number of terms or digits of precision. Such as trigonometric functions (sin, cos) and square root.
- Factoring very large numbers. Shor’s factoring algorithm may work for more modest semiprimes, but the precision of phase of a qubit is unlikely to support factoring of even keys significantly smaller than the standard encryption key size of 2048.
- Anything requiring conditionals, looping, or nested function calls.
- Complex logic, requiring conditionals, looping, or external function calls, simply will not work within quantum parallelism.
- Extended sequential processing, such as for a very long list of input data. Quantum circuits need to be relatively short.
- Anything requiring a full Turing machine. Including complex logic, conditionals, loops, and function calls.
- Any computation requiring dynamic heap memory allocation.
- Any computation requiring real numbers with a significant number of fractional decimal digits.
- Any computation requiring floating point numbers if the calculations cannot be reduced to integers or fixed-point scaled integers, or to the raw physical properties of qubits.
- Natural language processing of raw text or raw audio media.
- Text processing in general. Characters, strings, and words or symbols.
- Financial transactions where balances must be maintained precise to the penny.
- Real-time signal processing. Any data which changes after the quantum circuit has begun execution would require the full circuit to be re-executed. A quantum computer itself has no capability for directly accessing real-time signals.
- Real-time control. Not having any ability for I/O of any sort, a quantum computer has no capability for controlling real-time devices, such as process control for an industrial plant. Any real-time control would have to be made by a classical computer.
- Any application requiring an audit trail or explanation for actions and decisions which occur within quantum circuits.
- Complex Adaptive Systems (CAS).
- Climate modeling.
- Navier–Stokes equations.
- Finite Element Analysis (FEA).
For more detail and more examples, see my informal paper:
- What Can’t a Quantum Computer Compute?
- https://jackkrupansky.medium.com/what-cant-a-quantum-computer-compute-53bf3945d419
Quantum-inspired algorithms and quantum-inspired computing
The prospect for quantum-inspired algorithms and quantum-inspired computing is yet another example of the incredible intellectual advantage of classical computing. Inspired by quantum computing, but adapted and implemented on a classical computer.
Someone may have a great idea for a quantum algorithm which is not yet feasible due to inadequate quantum computer hardware, but all or some of the concepts of the quantum algorithm can frequently be transformed into a classical algorithm. Hence, we call it a quantum-inspired algorithm or quantum-inspired computing.
Granted, the quantum-inspired algorithm might not be anywhere as good as the ideal quantum implementation, but sometimes, frequently good enough is in fact good enough.
The radically different mindset of quantum computing which focuses on quantum parallelism can lead to novel re-thinking of how problems can be solved on classical computers, particularly to exploit multiple processors, parallel processing, and large distributed clusters. Sampling approaches such as Monte Carlo simulation can also be used to approximate solutions on a classical computer, but still modeled on quantum parallelism.
This is still a very new and largely unexplored area, but well worth research, prototyping and experimentation.
Personally, I think there is great potential for quantum-inspired computing — looking at quantum approaches to algorithms and applications and then attempting to approximate or simulate them using classical computing. In many situations, approximations are actually good enough, especially when the full quantum solutions are not yet feasible, especially in the earlier stages of adoption of quantum computing.
One example is using Monte Carlo simulation to approximate (actually, sample) a full quantum parallel computation. Maybe for, say, a traveling-salesman optimization problem, as an example. Again, it’s an approximation, not a full and accurate solution, but in many situations it may be good enough. Or at least better than a traditional classical solution when a full quantum solution is not yet feasible or otherwise not yet available.
Whether to consider quantum-inspired computing as under the umbrella of quantum computing proper or still part of classical computing is an interesting semantic problem. I can see it both ways. But that does not take away from its potential. And, it doesn’t take away from the starting point, which is research into quantum approaches to computation.
Develop a quantum algorithm first (possibly using a classical quantum simulator), and then evaluate possible classical approximations to arrive at the quantum-inspired algorithm that is inspired by the quantum approach.
It might well be that the quantum-inspired algorithm is a stopgap measure if near-term quantum computers simply don’t have the capabilities to support the actual quantum algorithm.
I wouldn’t necessarily recommend quantum-inspired algorithms as the preferred approach, but they are at least a possibility that can be considered.
And they are also an approach to recouping research into quantum algorithms should the pure quantum approach not be completely fruitful for some reason.
So many wonderful and even delightful classical features
Just to emphasize the point that the list of features and capabilities which give classical quantum computing such a great intellectual advantage over quantum computing is so long and so rich that classical computing was, is, and remains:
- So very satisfying.
- Absolutely wonderful.
- A great delight, a true joy. Why are Apple Mac and iPhone users so… happy… always?!
Yes, but besides all of THAT, what have the bloody Romans EVER done for us?!
My tribute to the scene in Monty Python’s Life of Brian, where they answer the question of What Have the Romans Ever Done for Us? In short, I felt the need to write this informal paper since classical computing isn’t getting the respect that it deserves. In this informal paper I try to answer the question What has classical computing ever done for us? (Or given to us.)
Universal quantum computers will combine all features of both quantum and classical computers, but not soon
Some, minimal, thought has been given to combining all of the features of both quantum computers and classical computers into a single computer architecture, a so-called universal quantum computer. But, this is more of an aspirational, long-term vision, not an imminent reality.
The point here is that once the advent of universal quantum computing is achieved, virtually all of this informal paper will no longer be relevant — one computer will be able to do it all.
For more details, see my informal paper:
- What Is a Universal Quantum Computer?
- https://jackkrupansky.medium.com/what-is-a-universal-quantum-computer-db183fd1f15a
Quantum computing still has some potential, but remains in the pre-commercialization stage with plenty of research, prototyping, and experimentation still required
Despite the many intellectual advantages of classical computers extolled here in this informal paper, quantum computers still have some interesting computational potential. But despite this potentially exponential computational advantage, quantum computing remains in the pre-commercialization stage which is characterized primarily by research, along with lots of prototyping and experimentation.
It will be some time (years) before quantum computing will be ready to exit from this pre-commercialization stage and proceed to actual commercialization.
Even then, classical computing will retain most of the intellectual advantages discussed in this informal paper, but at least the unique potential advantages of quantum computing will begin to become realized, at least to some degree.
For more detail on pre-commercialization, see my informal paper:
- Model for Pre-commercialization Required Before Quantum Computing Is Ready for Commercialization
- https://jackkrupansky.medium.com/model-for-pre-commercialization-required-before-quantum-computing-is-ready-for-commercialization-689651c7398a
Conclusions
This repeats the contents of the In a nutshell section at the start of this informal paper, but the list is worth reviewing anyway:
- Quantum computers may have a dramatic performance advantage over classical computers, at least in theory, eventually, but classical computers still have a mind-boggling intellectual advantage over quantum computers.
- Quantum computers offer exactly two unique capabilities…
- A quantum computer has the ability to generate and operate on true random numbers.
- A quantum computer offers quantum parallelism. The ability to iterate a modest-sized quantum computation over a large solution space.
- But a classical computer can do many things that a quantum computer cannot.
- And even many of the tasks that a quantum computer could in theory do, can be done much easier on a classical computer.
- Many intellectual advantages of classical computing…
- Intellectual power, intellectual advantage, and intellectual leverage are synonyms here.
- More intuitive. Closer to how the human mind operates.
- Closer to the language of mathematics. As used in so many disciplines and areas of life.
- More flexible and extensible.
- Theory of classical computing is much more mature and comprehensive.
- Richer, broader, and deeper range of computer hardware and software.
- A wealth of great classical algorithms and great classical applications are readily available, as well as examples for how to do great classical algorithms and great classical applications.
- Easier to learn and easier to train people.
- Richer, broader, and deeper range of books, papers, education, training, and conferences are readily available.
- Much larger talent pool and much larger potential talent pool.
- Many technical advantages. Too many to even summarize here — read the subsequent sections.
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated.
- Classical computing is very intuitive, while quantum computing is anything but intuitive…
- Classical computing is modeled on the human mind and mental processes.
- The fundamentals of classical computing, at least at the high-level programming language level (ala FORTRAN, et al) are quite intuitive, with mathematics-style algebraic expressions, intuitive high-level data types and variables, intuitive arrays of data, and simple control structures, while, over in the world of quantum computing, nothing is intuitive, with nothing comparable to mathematics-style algebraic expressions, high-level data types and variables, arrays of data, or simple control structures.
- Absolutely no knowledge of physics, especially quantum mechanics and its attendant math is needed for classical computing.
- Everything in the world of classical computing is deterministic, while everything in the world of quantum computing is probabilistic.
- Getting data in and out of classical software is quite easy, while getting data in and out of a quantum algorithm is quite messy and difficult.
- Many technical advantages of classical computing…
- Rich data types and data structures, files, file systems, databases, and search engines.
- Rich control structures: loops, conditionals, functions with parameters, and recursive functions, and object-oriented programming.
- Algebraic expressions with arithmetic operations, transcendental functions, math functions, and boolean logic.
- High-level programming models and a wide range and variety of high-level and natural programming languages.
- Even the primitive machine language of early classical computers was much more sophisticated than the programming model of quantum computers.
- Easy to represent problem solutions as actual code.
- Even early, primitive programming languages such as FORTRAN were much more capable than what is available today for quantum computing.
- Rich ecosystem of class and function libraries, application frameworks, and sophisticated design patterns.
- Virtual memory and virtual machines.
- Support for very sophisticated and very complex algorithms and applications.
- Support for Big Data.
- Sophisticated software methodologies.
- Threads, processes, and interprocess communication and data streaming.
- Pseudo-random number generation and a variety of special hardware or services that can generate true random numbers.
- Multiprocessor systems, specialized processing units such as graphical processing units (GPUs), and supercomputers.
- Personal computers, servers, embedded computers.
- Networking with computing clusters, local area networks, distributed computing, wide area networks, the Internet, the Web, network services, web services, and cloud computing.
- Real-time processing and real-time control.
- Math packages, statistical packages, data science packages, tools, and languages.
- Spreadsheets, calculators, word processing, graphics design, and hypertext.
- Mature suites of software development tools including great code analysis tools and great debugging capabilities.
- Many things that a quantum computer cannot do that classical computers can do easily.
- Quantum-inspired algorithms and quantum-inspired computing. Inspired by quantum computing, but adapted and implemented on a classical computer.
- Incredible and mind-boggling range of software from the fairly simple to the extremely complex and very sophisticated…
- Complex and sophisticated operating systems.
- Complex and sophisticated programming models, programming languages, compilers, and software development tools.
- Complex and sophisticated personal productivity applications.
- Complex and sophisticated networks and networked applications and networked services.
- Complex and sophisticated search engines.
- Complex and sophisticated social media applications and services.
- Distributed computing
- Software exploiting specialized processing units such as graphical processing units (GPUs).
- Supercomputing.
- Complex and sophisticated weather and storm forecasting.
- Complex and sophisticated artificial intelligence (AI) tools, systems, and applications.
- Complex and sophisticated robots, robotic systems, and autonomous systems.
- Complex and sophisticated scientific applications.
- Complex and sophisticated engineering tools and applications.
- Complex and sophisticated business applications.
- Easy to use and sophisticated fill-in forms capabilities.
- Easy to use email and email applications and mailing list processing.
- Easy to use, sophisticated, and easy to develop user interfaces and user experience capabilities.
- Complex and sophisticated finance applications.
- Physics, chemistry, and other physical science applications.
- DNA analysis, drug discovery, material design, medical imaging.
- Rich array of software and tools for imaging, video, and sound, for creation, manipulation, distribution, and consumption.
- Chess, Go, and video games.
- Proving mathematics theorems.
- Anybody can develop BASIC, Java, JavaScript, and Python applications.
- Relatively easy to develop sophisticated smartphone applications for everyone to use.
- Enabled the space program and allowed us to fly to the moon and return safely.
- Enabled us to discover and produce many life-saving drugs.
- Enabled us to design, build, and operate many amazing machines, vehicles, buildings, structures, and systems of all types.
- Other advantages of classical computing…
- Vast data centers.
- Very tiny and simple but very powerful embeddable computers.
- Mature technology.
- Not dependent on advances in physics for innovations.
- Ongoing evolution of classical computing, with plenty of runway still ahead.
- Contrasts between classical and quantum computing…
- A classical computer is a full-function computer, while a quantum computer is more of a coprocessor, capable of much more limited functions than even the simplest classical computer.
- Quantum state is very sensitive and difficult to sustain, with a fairly short life, while classical states are very robust, resilient, and trivial to sustain, indefinitely.
- Quantum states are not practical to place in long-term storage, while classical information is easy to keep in long-term storage.
- It’s very easy to get started in classical computing. While it’s very difficult to get started in quantum computing.
- Classical computing is quite easy, while quantum computing is a real challenge.
- Classical computing is very friendly towards and supportive of abstraction, while quantum computing and abstraction just don’t mix.
- Quantum computers excel at generating and working with true random numbers, while classical computers cannot generate true random numbers without special additional hardware.
- Classical computers can easily be miniaturized and are quite cheap and easy to use, while quantum computers are big, bulky, heavy, difficult to operate and use, and very expensive.
- Classical computers are very mature and proven, while quantum computers are still in their infancy, and quite unproven.
- Classical computing software is perfectly happy to run forever, indefinitely, while quantum algorithms execute a sequence of instructions (gates) and then produce a result.
- Classical computing has so many wonderful and even delightful features.
- Universal quantum computers will combine all features of both quantum and classical computers, but not soon.
- Quantum computing still has some potential, but remains in the pre-commercialization stage with plenty of research, prototyping, and experimentation still required.
For more of my writing: List of My Papers on Quantum Computing.