Blog

Quantum software - easy to define but hard to implement

18
July
,
2022

I'd like you to draw a picture, please. Draw a group of adults - perhaps a man and three women - working in the field. They are harvesting apples from an apple tree in mid-day. The man is shaking apples loose from the tree while some of the women collect the apples that fall to the ground. The group should be dressed in 19th century work clothes. The scene is in the apple orchard, but I'd like the focus to be on the tree near which the group is working. Try to capture colors that might be typical in an orchard: yellowish red-orange, green, violet, and pink.

That's it!

Simple, right? It took about 100 words and a few minutes to express what I'd like to see.

But implementing this description, certainly to the level of Camille PIssaro's Apple Harvest (painted in 1888) is extremely difficult.

Apple Picking at Eragny-sur-Epte, Camille Pissaro, 1888

While writing quantum software is much removed from impressionist paintings, one could argue that writing quantum software suffers from the same problem: quantum algorithms are easy to describe yet difficult to implement. It is relatively easy to explain how popular quantum algorithms work - how to perform a Grover search, how to optimize an asset portfolio, and even how Shor's algorithm works. It is much more difficult, however, to implement them.

Why?

One reason is that it's the difficulty in generalization. Coding an oracle that detects the number "3" is a lot easier than coding an oracle that accepts an arbitrary 8-bit number, or a set of numbers, and matches it.

Another reason is scale. As the size of each algorithmic block grows, it becomes more challenging to implement. A 20-qubit QFT is harder to write out than a 3-qubit QFT.

Then, one wants to make these circuits efficient and optimized. This is done to fit a circuit within the available quantum resources, or to get better results. There are so many ways to optimize and so many system-wide parameters to account for, that this step alone might take a very long time. Things become even more complex when you wish to optimize for a particular type of hardware, or to port the algorithm from one hardware to another.

That's why Classiq created a platform that allows the designer to specify the behavior - the functional model - of the circuit, and then automatically translates that into a high-quality quantum circuit. Shortening the path from definition to execution is important, and will become critical as quantum computers grow in scale and capability.

I'd like you to draw a picture, please. Draw a group of adults - perhaps a man and three women - working in the field. They are harvesting apples from an apple tree in mid-day. The man is shaking apples loose from the tree while some of the women collect the apples that fall to the ground. The group should be dressed in 19th century work clothes. The scene is in the apple orchard, but I'd like the focus to be on the tree near which the group is working. Try to capture colors that might be typical in an orchard: yellowish red-orange, green, violet, and pink.

That's it!

Simple, right? It took about 100 words and a few minutes to express what I'd like to see.

But implementing this description, certainly to the level of Camille PIssaro's Apple Harvest (painted in 1888) is extremely difficult.

Apple Picking at Eragny-sur-Epte, Camille Pissaro, 1888

While writing quantum software is much removed from impressionist paintings, one could argue that writing quantum software suffers from the same problem: quantum algorithms are easy to describe yet difficult to implement. It is relatively easy to explain how popular quantum algorithms work - how to perform a Grover search, how to optimize an asset portfolio, and even how Shor's algorithm works. It is much more difficult, however, to implement them.

Why?

One reason is that it's the difficulty in generalization. Coding an oracle that detects the number "3" is a lot easier than coding an oracle that accepts an arbitrary 8-bit number, or a set of numbers, and matches it.

Another reason is scale. As the size of each algorithmic block grows, it becomes more challenging to implement. A 20-qubit QFT is harder to write out than a 3-qubit QFT.

Then, one wants to make these circuits efficient and optimized. This is done to fit a circuit within the available quantum resources, or to get better results. There are so many ways to optimize and so many system-wide parameters to account for, that this step alone might take a very long time. Things become even more complex when you wish to optimize for a particular type of hardware, or to port the algorithm from one hardware to another.

That's why Classiq created a platform that allows the designer to specify the behavior - the functional model - of the circuit, and then automatically translates that into a high-quality quantum circuit. Shortening the path from definition to execution is important, and will become critical as quantum computers grow in scale and capability.

About "The Qubit Guy's Podcast"

Hosted by The Qubit Guy (Yuval Boger, our Chief Marketing Officer), the podcast hosts thought leaders in quantum computing to discuss business and technical questions that impact the quantum computing ecosystem. Our guests provide interesting insights about quantum computer software and algorithm, quantum computer hardware, key applications for quantum computing, market studies of the quantum industry and more.

If you would like to suggest a guest for the podcast, please contact us.

Start Creating Quantum Software Without Limits

contact us