From Classical Code to Quantum Applications

11 Feb17:00 – 17:30 UTCStage: Main StageTalk

Checking session availability…

Hang tight while we load the latest updates.

Quantum computing holds the potential to solve some of the world's most complex computational problems, provided we have the knowledge and tools to harness this power. In this session, Amanda will be sharing about applying product thinking and user research in deep tech, to understand users and enable developers who can code to build programs for quantum computers without any quantum knowledge.

As quantum computing is still a nascent industry, there are vast uncharted territories between scientific research, product development and design to be bridged before quantum computers can become useful. It is interesting to learn how to apply product thinking and strategy in this field, so that we can benefit from applying these principles in a narrow and restricted area, and extrapolate these skills to apply them in different domains.

From Classical Code to Quantum Applications

Amanda Chew at UXDX Community: From Classical Code to Quantum Applications. Video: https://youtu.be/sKtQLWD1HEc

Readable transcript: edited from the recording's captions for readability (fillers and false starts removed, punctuation and section headings added). Wording is the speaker's own. Timestamps are positions in the video. Names marked [?] could not be verified against the audio.

Why quantum computing needs product thinking

[00:00:07] Hi everyone. Firstly, I'd like to thank you for taking the time to attend this talk, and the organizers at UXDX for the invitation to speak. I'm Amanda Chew, VP of product at Horizon Quantum, where we are building a new generation of programming tools to simplify and expedite the process of developing software for quantum computers. I've been in the tech industry working on product and software developer tools, and I've always enjoyed building tools for software developers. My background is in mathematics and computer science, and now working on developer tools for quantum computing at Horizon Quantum reflects a commitment to making quantum computers accessible to anyone who can program today.

[00:00:49] Today I'll share a little about how we've approached and applied product thinking to quantum computing at Horizon Quantum, in particular to abstract away quantum computing and quantum mechanics in a way that enables users to write quantum applications from classical code without any knowledge of quantum computing. The reason we care about this is because computers and computing have changed the world. Part of it has been hardware, and part of it is also software, in particular the software developer tools that enable domain experts to make use of computers to solve hard problems. And what it means to compute today is starting to change.

[00:01:33] Quantum computing is fundamentally a new form of computation. It's the study of computers using quantum mechanics, which is a discipline of physics that looks at particles and their interactions at a very small scale. We are talking about atomic and subatomic particles like neutrons, electrons, nuclear spins and protons. The use of quantum mechanics opens up concepts and techniques such as superposition and entanglement that we can draw on to enable computation and quantum information processing. When processing information, quantum computers can draw on the interactions between different computational pathways at the same time, rather than traversing a single pathway like a conventional computer. That's the key to their large computational power, which can lead to dramatic performance gains.

[00:02:30] If you're working in product in such an industry, or in a deep tech industry, there are some implications for how you build product. For example, what are the unique aspects of quantum computing, and how should this impact your product roadmap and your strategy? How do you balance both short-term and long-term planning? Regarding the audiences or the users: who are the target audiences for quantum computing products, both today and in the future, and how does the choice of audience impact the way you build your product? For use cases: what are some early use cases for quantum computing, and what does a minimum viable product, an MVP, look like? What should we build to anchor product development on real user needs, so that we can both deliver value to users today and also get user feedback to iterate and build for the future? And lastly, on metrics: how do you measure success and product-market fit when traditional metrics may not be as relevant in an advanced and early-stage field such as quantum computing?

Finding users when the technology is still nascent

[00:03:39] Quantum computing represents a fundamental shift in computing technology, and each time we've seen such technological shifts, it has always led to tremendous value creation. The quantum computing market is forecast to achieve around 80 to 170 billion by 2014 [?] in total annual revenue creation for end users. In the present, an attempt to find product-market fit requires an understanding of the users, their needs, their work to be done and their use cases. So in today's session we'll learn about an approach: an attempt to identify the users when the technology is still nascent, how to uncover the users' unknown needs, observe their work, and find the present and future use cases. Of course we don't have all the answers yet, but hopefully by sharing an approach, it might be useful in applying these lessons to your own product domains.

[00:04:42] Typically we've seen how users adopt technology in conventional computing, as you can see in this graph. But for deep tech, how are the early users different from those in conventional computing? We realized that the early users might come even before the innovators that you see in this diagram. So we should consider users involved in research or academia, people who can understand and see the value in the technology. While building for the present, we should also consider long-term users. For quantum computing to reach mass adoption, it still has to be accessible to the majority of users, for example to domain experts who have their own use cases in their own industries today, and we have to find a way for the product to be incorporated into their existing workflow. To reach mass adoption, the classical code that developers write today for conventional computers will also eventually have to be ported over to quantum computers.

Barriers for users of quantum computers

[00:05:52] Although quantum computing holds the potential to address some of the world's most challenging computational problems, for the majority of users it's still hard to harness the power of quantum computers effectively. We see a couple of barriers for users. Firstly, quantum computing is extremely non-intuitive, and that makes it difficult to develop new quantum algorithms. This is because building quantum algorithms relies on the interference between the different branches of the wave function, in a way that's outside the realm of our day-to-day experience. This presents a steep learning curve, because it takes a lot of effort and experience before we're actually able to make some decent progress there.

[00:06:42] Next, there is a diverse range of hardware architectures, and they are imperfect, or noisy. We haven't reached fault-tolerant quantum computing yet. So to get the most out of today's quantum computers, you will need to write code that's tailored to the hardware, which generally means it wouldn't work well on another piece of hardware or another architecture. So the code is less portable from one hardware architecture to another.

[00:07:09] Lastly, our current programming languages and programming tools lack abstraction and are still in their primitive stages. You're piecing together a quantum circuit logic gate by logic gate, and you can imagine it's quite a daunting task to write a complex piece of quantum software at this level of detail, as if you used assembly language or something that's even lower level.

Three user groups and their use cases

[00:07:34] Knowing the limitations or barriers for users in programming quantum computers, we approached finding our early users in terms of three categories. The first was expertise in quantum computing. Next, impact, which means how likely and how quickly the user would see the impact of our product with minimal explanation or minimal handholding. Next, reach: how widespread are these potential users in industry or in the world today, so that we can build our product in a way that enables it to scale to the majority of users. For these three categories, we've also considered the potential of the user to adopt a new product, from an early to a long-term scale.

[00:08:26] This brings us to three different types of user groups. Firstly, quantum experts, who have high expertise in quantum computing and are able to see the value of any quantum software or hardware very quickly. Next, there are programmers and developers, who are very widespread in their reach; there's a majority of programmers today. And domain experts in the world today. You can see the relative position of each user group on a scale for each category.

[00:09:00] For each of these user groups, let's also consider their potential use cases according to their quantum expertise. The current applications of quantum computers that we most often hear about today are those in pharmaceuticals, for example molecular simulations, and also in banking, where an example of such an application is portfolio optimization. However, we think there are way more possibilities waiting for us to discover, because at its core a quantum computer is a type of high-performance computer. So there could be an impact on all industries that make use of high-performance computing. Examples of such industries and use cases are the aerospace industry, for problems in computational fluid dynamics; the semiconductor industry, for complex electromagnetic simulations; and oil and gas, for geophysical calculations. So the question for us in product is how to make these use cases applicable to each user in their own domain, according to their level of quantum expertise.

Imagining quantum programming like classical programming

[00:10:13] As quantum computing is still a nascent field, we have fewer examples and references for building products in this segment of deep tech. That being said, we can learn many lessons from the history of classical computing, from the early 1940s to the 2000s, as to which products prevailed compared to their competitors, and the reasons for their successes and their failures, for both software and hardware. It's also interesting that we can see similar patterns in the development of algorithms in both the classical and quantum computing fields.

[00:10:51] With this in mind, the way we approach product development in deep tech at Horizon Quantum is we imagine if things were different. We imagine that you could program a quantum computer in the same way that you can program a conventional computer today. This means anyone who can program, whether you're a domain expert or a developer, could write code that is fast and efficient on a conventional computer and is automatically accelerated on quantum hardware. What if you could also abstract away the quantum mechanics, and give the domain experts in different industries the tools and capabilities to build quantum-enhanced programs without needing to understand the underlying quantum mechanics or model, so they are able to write code that works well on both classical and quantum hardware?

[00:11:44] What this results in at Horizon Quantum is building products that cover these abstraction layers. We are building a complete development toolchain that we've exposed to the user at varying levels of abstraction, which helps to expedite and simplify the process of developing software for quantum computers, for both programmers and quantum experts. At a higher level, which you can see in the first layer of this diagram, we envision users being able to write in their classical programming languages, like Python or C, and then we'll automatically break down that program structure into its basic components and automatically generate a quantum algorithm for their classical program.

[00:12:30] At the lower level, we then compile this program down to the quantum hardware, all the while being aware of its topology and the constraints and limitations of the hardware. Then we deploy this quantum program as an API, so that the user can run it in their current workflow, and run the API in their current program or wherever they're working. And if they run the program, they get the result of their compiled quantum program.

Triple Alpha and the hardware testbed

[00:13:03] Our product is called Triple Alpha, where you can write code in classical programming languages and program in a similar way to conventional software engineering. In this image, you can write subroutines in C and C++, and our compiler will automatically construct a quantum circuit directly from the functions written in these classical languages. In more modern software engineering, you also program with flow control elements like for loops, if statements, while loops and so on. Our languages are also Turing complete, which enables you to rely on flow control to overcome the limitations of circuit-based quantum computation. You can also quantify the resources for your quantum program, and compile and optimize your quantum programs for quantum computers of any modality, because our compiler will map it to the native operations of any target hardware. Lastly, you can get the results of your compiled quantum program via an API that you can embed in a wider program.

[00:14:14] Beyond this, there has also been accelerated and tremendous progress on quantum hardware in recent months, and with that, it's also important to adapt to the advancements in research and in deep tech. So we realized that we wanted to establish a quantum hardware testbed in our Singapore office, to be able to co-develop both quantum hardware and software. Our testbed has the capacity to host up to three quantum computers, and we will have our first quantum computer up and running by early next year in our Singapore office. We're the first quantum software company in the world to do so, and we see this tight integration between the hardware and software as critical to getting to useful quantum computing.

[00:15:02] This brings me to the end of my talk on an approach to applying product thinking to deep tech regions and segments such as quantum computing. Thanks for taking the time to attend this talk today.