So what is happening in the world of quantum computing around us?
Without any specific order. Lets talk about the tools and applications startups are building for Quantum Computing.
Horizon Quantum Computing
They are pioneering an approach to quantum programming that allows programs written in a single unified language to be compiled and run on either conventional or quantum computers, producing fast efficient implementations no matter the platform. At the core of their technology is a process that automatically constructs quantum algorithms based on programs written in Matlab or Octave.
*** This approach is like Cross Compilation of Classical -> Quantum Programs
We are not sure how successful this approach will be. Because one is to one translation of Classical Programs into Quantum Programs makes little or no sense. It takes huge engineering and research effort to create a ‘specific’ Quantum Algorithm which solves a ‘classical’ problem. And achieves a Quadratic or Exponential Quantum Advantage. So from where we stand this is a No Go!
Is making Quantum Data Loaders to load data into Quantum Machine Learning Models. It also creates GPU based Quantum Simulators which can do 1000 Gate 20 Qubit Circuits on GPU’s in 6 seconds.
They are into creating Architecture Agnostic Quantum Solutions. This has huge value because there are multiple Quantum Computers from multiple vendors and there is no standardization yet or expected for the next 10-20 years. So Customers need to be able to build solutions once and deploy it over any Quantum Computer Backend. Without being locked to any specific backend by using its proprietary API’s and Quantum Programming Languages and Frameworks. This is like creating the Java of Quantum Computing.
Zapata Computing created a Workflow Engine called ORQUESTRA that allows one to Compose ‘quantum-enabled workflows’TM and execute freely
across the full range of classical and quantum devices. This is quite interesting, because it allows someone to exploit classical quantum inspired algorithms, mix and use Quantum Annealing and Gate Based Quantum Computers, and use hybrid – both classical and quantum backends to create solutions. We think this is a great way to go.
Sidenote: Quantum Benchmarks
Some people use useless misleading terms like Quantum Volume to describe a Quantum Computers capabilities. The problem is that if something doesn't work well enough to solve my problems that I'm interested in then a number like Quantum Volume 200 doesn't help. I'm only interested in knowing if a Quantum Computer can solve the problem I want to solve. What the world needs is a suite of representative problems that can be executed periodically on Quantum Computers to create a Benchmark of the performance of Quantum Computers and what customers can expect from them. A metric like Quantum Volume is probably great for Quantum Computer Vendors who want to measure their progress. But from a customers viewpoint it is pretty much useless.
Strangeworks is creating Standards for Quantum Computing Definitions, Performance Metrics & Performance Benchmarking.
Alibaba Says Its New “Tai Zhang” Is the World’s Most Powerful Quantum Circuit Simulator. Please see the various techniques used in implementing Quantum Simulators above. Creating a Quantum Simulator is a Research effort that will need to utilize GPGPU’s and FPGA’s and also invent new more efficient algorithms.
University of Michigan
QuIDDPro is a fast, scalable, and easy-to-use computational interface for generic quantum circuit simulation. It supports state vectors, density matrices, and related operations using the Quantum Information Decision Diagram (QuIDD) datastructure. Other efforts have used Matlab, Octave, QCSim, and libquantum to simulate quantum circuits. However, unlike these efforts, QuIDDPro does not always suffer from the exponential blow-up in size of the matrices required to simulate quantum circuits. QuIDDPro is significantly faster and uses significantly less memory as compared to other generic simulation methods.
High Level Programming Languages
One of the newest efforts in this space is Silq, a high-level programming language for quantum computers out of Switzerland’s ETH Zurich. Existing quantum languages for programmers still work at a very low abstraction level, which makes life for quantum programmers a lot harder than necessary. Programming Quantum Computers with low level gate descriptions is erroneous due to the side effects entangled temporary qubits have with other qubits. Silq primarily solves that.
There are other prominent High Level programming languages for example…
- QCL – A Programming Language for Quantum Computers
- LanQ – A quantum imperative programming language
IDE – Integrated Development Environment
Eclipse XACC is probably the worlds first IDE for Quantum Computing.
XACC is an extensible compilation framework for hybrid quantum-classical computing architectures. It provides extensible language frontend and hardware backend compilation components glued together via a novel quantum intermediate representation. XACC currently supports quantum-classical programming and enables the execution of quantum kernels on IBM, Rigetti, and D-Wave QPUs, as well as a number of quantum computer simulators.
Eclipse XACC is a programming specification and software framework that tackles the aforementioned challenges and provides a hybrid classical-quantum programming model that enables quantum acceleration within existing classical HPC applications. XACC provides the software interfaces and infrastructure required by domain computational scientists to offload computationally intractable work to an attached quantum accelerator. It handles algorithm programming in a manner similar to OpenCL, with code expressed as language-agnostic quantum kernels, thus enabling XACC to interact with existing quantum programming languages (QPLs) such as Scaffold, Quipper, and QCL. To accomplish this language interoperability, XACC keeps track of associated compilers for each programming language and orchestrates their compilation, or translation, to accelerator-level assembly code. XACC provides developers with two mechanisms for compilation: (1) a runtime API (just-in-time compilation) that enables the control of all aspects of high-level programming, translation, and execution, and (2) a static compiler that transforms invoked quantum kernels into an execution of the compiled result on the accelerator. Both mechanisms delegate to a classical compiler for generation of the hybrid classical-quantum executable. Furthermore, since XACC is extensible in languages and compilers, users can program and execute algorithms suited for either gate model quantum computing or adiabatic quantum computing.
It seems everyone is trying to solve Chemistry, Finance, Materials, Machine Learning, Molecular Modelling and Drug Discovery Problems with Quantum Computers. So creating those applications for the customers makes sense. We need to be able to define the problem conceptually at a high level and encode it into an algorithm and execute it over ‘any’ suitable Quantum Backend.
Sidenote: Applications for Gate Based Quantum Computers
Everyone understands at a high level how a Gate Based Quantum Computer works. But it is extremely complicated to program one and create algorithms to solve interesting problems. So there is a huge multi-billion dollar market to create Applications that can encode a problem of interest, execute it over 'any' Gate Based Quantum Computer and decode the results into a form which is usable for solving business problems. This is a huge idea for a Quantum Applications Startup.
Sidenote: Applications for Quantum Annealing Quantum Computers
Everyone understands at a high level how a Quantum Annealing Quantum Computer works. But it is extremely complicated to program one and create algorithms to solve interesting problems. So there is a huge multi-billion dollar market to create Applications that can encode a problem of interest, execute it over 'any' Quantum Annealing Quantum Computer or a Classical Solver and decode the results into a form which is usable for solving business problems. This is a huge idea for a Quantum Applications Startup.
The Path Ahead
So how do the above two Applications be offered. Yes, they will primarily be offered as a SaaS service but other than that the Customer just needs to worry about the problem and (the problem description) format.
So lets say the customer needs to crack RSA-2048 (thats his problem [type]) he checks the problem description format for that service and uses that to enter the RSA Key he needs to be cracked. Apart from that he doesn’t need to worry about anything other than the estimate of the costs of using the service for his problem ‘instance’. The service should be able to analyse the problem instance described in the problem description format and offer that estimate (of time and costs). Beyond which it is the service’s job to accurately and efficiently encode [convert] that problem definition into a Gate Based Circuit or a Annealing Optimization problem. Optimize the encodings etc. and execute it over a suitable backend. And then decode the results and give the two numbers which are the factors of the given RSA-2048 key. The customer should just be worried about taking and using those.
Similarly for other problems like Route Optimization, Portfolio Optimization, Trading Decisions etc.
So this kind of a service will be a front end SaaS service to a Quantum Backend Service like Amazon Braket.
>>> Cyber Security
Is working on Quantum Random Number Generators. And Enterprise Key & Policy Management solutions.
Isara has emerged as an early frontrunner, working to develop security systems that essentially allow communication between classical and quantum algorithms.
Sidenote: The Insight
It is not just necessary to create Quantum Secure algorithms. One has to build infrastructure and services around them too. Just like we have built for Classical Cryptographic Algorithms over the last few decades.
Until that happens lets just hope nobody outside Automatski develops a quantum computer and breaks all cryptography.