The QPath Blog
Advantages of agnostic development of quantum algorithms and APPs for the real world with QPath
Thanks to recent advances in the application of scientific research in various fields of knowledge to the development of quantum computing, we have stopped talking about quantum computing as something of the future .
Those of us who are dedicated to the world of computing, if we don’t want to lose the already vertiginous pace of technological change in which we have lived in recent decades, we must react to this enormous qualitative leap and, to do so successfully, we must talk about quantum computing as a present reality.
In this context, the beginning of the preparation of institutions, companies, and professionals to develop quality quantum algorithms and APPs for the real world should already be a thing of the past.
And I assure you, I am not exaggerating with these statements.
Since it is not the object of this article to analyze the technological complexities that the foregoing implies, I will not delve into it. But, if you consider some relevant details about this matter interesting, you can consult our opinion in the first part of the article published with Pepe Hevia on the most relevant elements of the new paradigm of quantum computing .
The proposal of the emerging quantum computing industry for software development, although it took some time to manifest itself, is currently broad and does not stop growing, showing milestones of interest almost weekly. The media and the internet, with their news and reports, give us a good perspective on the pace of contributions from established companies, as well as the contributions made by startups, which are constantly emerging.
Bearing in mind that the panorama is wide (very wide), and above all changing at such a frenetic pace that it causes, at breakneck speed, the obsolescence of information on the state of the art of existing tools for the development of quantum software, in this article I will limit my exposure to the tools of the main quantum computing providers and to QPath, our platform for the development and life cycle of quantum software applications.
To start working on quantum software development, the first thing to do is to know, at the very least, the fundamental concepts of quantum mechanics, quantum computing and the principles of programming quantum solutions.
If you know the above, you will be in a better position to try to make decisions about quantum environments, development tools, etc. with which you will work. Even so, this knowledge will not free you from how complex this exercise always results given the variety of existing tools. Therefore, if you have to make this decision for the first time, I suggest that you make the first approach by answering these two questions:
· What kind of quantum software do you need or want to develop?
· What quantum software development tools do you think or want to work with?
You may wonder why you must first think about and define the type of software you will develop. The reason is simple: it is based on the experience acquired in the years that we have been working both in the development of quantum software and APPs. That is why we know that the tasks to be carried out in the development of each type of quantum software will not only end up defining the tools to be used , but will also condition, as shown in Figure 1, the minimum reasonable composition of the required polymath team (with its corresponding set of minimum competencies), to be able to successfully tackle the development of quality quantum software.
Figure 1: Reasonable minimum composition of the necessary roles in polymath teams to develop the different types of quantum software
As can be seen in Figure 1, it is evident that, as occurs in classical software development, the closer we get to the hardware (since the development process is more complex), the broader and more varied the minimum composition of the software will be. The necessary polymath team and, of course, the broader will be the competencies required for software development. Given that the main objective of this article is focused on the development of quantum APPs for the real world, in the exhibition I will only focus on what is related to the development of software applications.
A few more notes on Figure 1: in the case of the development of APPs with QPath, the minimum equipment required for those who, above all, wish to start taking the first steps in the development of quantum APPs, could initially be reduced somewhat more thanks to:
· the architecture of the platform to manage the life cycle of developments
· the characteristics of the visual development of the code, circuits, and flows
· the resource libraries that will be available to developers
All this, depending on the characteristics of the project to be carried out, would initially allow to dispense with the roles of Physicists and/or Mathematicians dedicated full time. Furthermore, these profiles could be incorporated part-time or full-time whenever necessary, depending on the needs of the projects, or could even be provided by the service that QPath offers.
In the development of APPs with QPath, the initial minimum team also disappears the role of Engineer or Quantum Quality Specialist, because QPath, by design, solves most of the quality problems presented by quantum computing platforms , so in this environment that specific profile is not essential to develop quality software.
Finally, add that this way of representing the minimum composition of the roles required to produce the different types of software even remotely means that not every type of quantum software can be developed with the most varied and wide composition of polymath teams. Remember that with this schematic representation, above all, it is intended to show, to those who need to start in the development of quantum APPs, the presumed minimum requirements to produce quality quantum software. Of course, in any case, those who have existing teams of large dimensions and a variety of roles, according to the needs of the projects they work on, could work harmoniously and productively with QPath as they are organized.
Correctly answering the second question is transcendental for the development of quantum software, because properly choosing the development tools with which to work will condition many other decisions to be made in the short and medium term regarding:
· the quantum technology to be used
· the specific algorithm to use
· the costs of its use
· the possibility or not of reusing the solutions in different quantum computers
· the minimum learning curve to develop
· training costs
· development costs for multiple quantum computers
· maintenance costs to adapt what has been developed to changes in quantum hardware
In short, an extensive list of future decisions and consequences of all kinds that will depend directly on this decision.
As can be seen in Figure 2, to answer this second question I will group the tools currently available for the development of quantum APPs into two large groups:
· Toolkits for the development of quantum software, developed by the most relevant quantum computer suppliers
· Third-party tools (from other companies and startups) for the development of quantum software based on a single criterion: that, being totally valid for working with the proprietary technologies of the large quantum computing providers, they are truly agnostic.
Since QPath 100% fulfills the requirement to be a truly agnostic platform of quantum technologies with which it works (support of different types of quantum hardware: gate-based, quantum annealing, simulators, etc.), in this group I will focus only on this Platform.
Figure 2: Tools for the development of quantum APPs
Quantum software development toolkits from leading quantum computer vendors
If the decision to be made contemplates the development of quantum software applications with the toolkits of the main providers, the resolution will have to be approached bearing in mind the variety of options (remember that, although they seem many, this selection is limited only to the providers most relevant) that we present in Figure 3:
Figure 3: Quantum software development toolkits from the major quantum computer providers
As you can see in Figure 3, each supplier has all the resources for the development of quantum software necessary to guarantee the proper use of their quantum computers:
· Assembly language
· Quantum circuits
· Quantum algorithms
· Programming languages
· Full-stack libraries
In addition, to these valuable resources, quantum providers add extensive repositories of information, code, algorithms, training materials and a long list of other types of resources that greatly facilitate access to their quantum technologies.
There is no doubt that with all these resources at the disposal of institutions, companies and developers, good quantum software can be developed for the environment of the selected provider. But right in this last detail is the most important limitation of working with proprietary environments: they are only valid for working in their environments.
But what happens if after spending time learning and developing in one of these environments I have to exploit, for different (business and technological) reasons developments in another one?
Although the answer is simple, it is still frustrating for developers: you will need to learn how to work in the new environment where you need / want to run the solution and re-develop your algorithms and applications from scratch. Yes, you have read correctly: if you need or want to execute what was developed in another technological environment, you will have to program everything again for the new environment. And this will be the case every time you need or want to change the quantum provider.
Something similar happens in the acquisition of the knowledge required to develop with these toolkits, as we show in Figure 4.
Figure 4: Specific knowledge required for each environment quantum providers
Although we can count on a generic knowledge base on the fundamentals of computing and quantum programming, the reality is that each environment of the multiple providers requires specific knowledge and courses, each of them contemplates different levels of knowledge, which It forces specific training to be carried out every time knowledge of another environment is required.
As shown in Figure 3, each manufacturer environment (represented in each column) is a proprietary world and, with very few exceptions, not compatible with the other environments that surround it. It is not the Tower of Babel, but Figures 3 and 4 somehow remind us of it.
Fortunately, the above do not necessarily have to occur because, for example, if the development is to be executed in QPath, which supports the import and execution of the code developed in those quantum environments through different methods, this could be done without reprogramming and, depending on of the method used for integration with QPath, the imported could even be executed in other quantum environments.
QPath for truly agnostic quantum software development
An efficient agnostic platform is a platform in full harmony with the technologies it must agnostically work with. In other words, technological agnosticism is only possible on the basis of a “microscopic” technological correspondence between the parties that are agnostically related.
To achieve this harmony, QPath rigorously applies the principles of quantum computing and programming, the good practices in Quantum Software Engineering and Programming  and, of course, the requirements defined by manufacturers for their ecosystems. This is the only way to guarantee, first, that QPath supports truly agnostic quantum software development; second, the compatibility of this ecosystem with those of the different quantum providers approved in QPath; and finally, QPath’s full and ongoing interoperability with quantum gate and annealing vendor ecosystems.
I have previously stated that QPath is a 100% agnostic platform of quantum technologies with which it works. This means that developers using it don’t have to worry about absolutely any specific technical details of the different quantum technologies to be used in QPath (hardware, assembly language, quantum circuits, quantum algorithms, programming languages, full-stack libraries, etc.). The only thing developers have to do with respect to QPath-approved quantum technologies is to select, with a click, the quantum environment or environments in which they want to run their solutions individually or, even, simultaneously on several different technologies.
Let’s see below how the conditions for the development of quantum software drastically change if it is decided to develop quantum algorithms & APPs with an agnostic platform like QPath and the “magic” of its CORE modules, capable of managing quantum algorithms and agnostic solutions of quantum technology, assisted by general purpose tools .
To facilitate the development of quality quantum software, QPath also provides its users with all the ALM stack oriented to the creation of quantum software solutions, through a friendly visual repository:
· Assets management
· Design tools
· Scalable execution units on demand
· Unified results
· Integration adapters
· Quantum services catalog
Thanks to this architecture and design, QPath provides by design a powerful platform of tools, services and APIs for the creation of quality, technology-independent quantum solutions, which works, as shown in Figure 5, efficiently with different quantum technologies such as those of IBM, Microsoft , Rigetti, D-Wave, Google and also with other providers, as well as with quantum computing simulators such as QuTECH, CTIC, etc.
Figure 5: QPath enables the development of truly agnostic quantum APPs for quantum technologies
This agnostic quality of QPath makes it an accelerator of quantum software development because, through a hybrid model of building services that abstract quantum technology, it allows developers to be unconcerned about manufacturers platforms and their necessary requirements, and focus on the knowledge and leave the details to the platform. This statement includes the fact that to develop quality algorithms and APPs with QPath, it’s not necessary to manually program or a line of code, in any programming language. The system takes care of this, so the time of the construction phase is reduced so drastically that its weight in the project life cycle is minimal.
As a result, significant savings are recorded in project development times, with a corresponding positive impact on productivity and in production and maintenance costs.
In the same way, these characteristics of QPath have a positive effect on the learning curve, with the corresponding positive effect on costs, since, as can be seen in the Figure 6, the knowledge required to develop quantum software with QPath, regardless of the technology in which the algorithms and quantum solutions are developed is reduced to the basic knowledge of the specific programming techniques in QPath, without including the need to know the technological specificities of the quantum providers.
Figure 6: Courses to develop algorithms and APPs with QPath
With the knowledge acquired with the first two courses in Figure 6, users would be able to start in the development of APPs and, in this way, begin to create the necessary competencies to develop quality agnostic quantum software, capable of supporting the execution of quantum processing units transparently, regardless of the platform where they run.
A sample of the advantages offered by QPath is that only with the knowledge acquired with the first two courses in Figure 6 would users be in a position to start in the development of APPs and, in this way, begin to create the necessary skills to develop quality agnostic quantum software, capable of supporting the execution of quantum processing units in a transparent way, regardless of the platform where they are executed. As part of this hands-on activity, they could begin to perform these tasks in the visual environment of QPath :
· Create your quantum application assets and set your environment requirements
· Visually design quantum assets: quantum circuits, their definitions of Annealing models and compose the algorithm using flows
· Manage the life cycle
· Choose preferred quantum computers
· Explore the results using a standardized unified schema whatever the execution target.
· Manage all processes and analyze all stored telemetry.
By performing these tasks with QPath, novice developers would be taking their first practical steps in the activities of the quantum software development cycle for quantum gates and/or annealing, from the creation of the quantum algorithm through its development, testing and implementation, to its deployment and reuse, all of this applicable to the widest range of possible applications: Chemistry, Economics, Financial Services, Energy and Agriculture, Medicine and Health, Privacy and Cryptography, Logistics, Defense and National Security, …
With these facilities for the rapid adoption of quantum APP development, QPath makes a very, very special contribution to the growing global demand for quantum software developers in the emerging quantum industry.
In this context, it’s important to highlight the direct negative consequences that the current global level of quantum illiteracy has for the rapid consolidation of the quantum industry . It’s no less important, to underline the many years that it will take to overcome it only through the essential and urgent formal, traditional literacy: the formation from the base that prepares to interpret, simulate and apply knowledge to life from a quantum perspective
Quantum illiteracy is a real brake on the growth of the workforce market ready to produce quantum software and, therefore, actions that help to accelerate its improvement are welcome. QPath, given its architecture and functionalities, facilitates and accelerates the practical preparation of quantum software developers, helps and guides developers to do their work with quality, so this platform is a very good practical option that favors the growth of the quantum industry in the world. And it brings it now, not in a few years or even decades.
In summary, bearing in mind all the above I can affirm that QPath is an excellent platform for institutions, companies, and professionals to start and accelerate the adoption of the development of quality quantum algorithms and APPs for the real world  because QPath assists its users in the development of quantum software, frees them from having to know and know-how to manage different quantum technological environments, from learning and programming with different programming languages and also from having to form, from the beginning, polymath teams with a broad profile of roles.
QPath is no less important for those who already have quantum APPs development teams because, thanks to its functionalities for both the quantum gate approach and annealing, as it supports the life cycle and engineering of quantum software by design, and to being truly agnostic of vendor technologies, they could optimize their development processes, increase their productivity, better secure their investments in the development of quantum APPs against the many technological and business risks  and, with all this, be more competitive in the emerging quantum software business .
Last, but not least: QPath is a platform that in a practical way contributes effectively to the rapid incorporation of a specialized workforce to the deficient market of quantum developers, thanks to the facilities it offers to develop high-quality quantum APPs for gates and annealing technology approaches. This is not only possible because QPath is the quantum software development and lifecycle application platform, it’s also possible because, thanks to its truly agnostic architecture, it has been designed to simplify the work of quantum software developers and, through their activity in the life cycles of the projects, actively contribute to ongoing global quantum literacy in a direct and practical way.
 Piattini, M., Serrano, M., Pérez-Castillo, R., Peterssen, G. & Hevia, J.L. (2021). Towards a Quantum Software Engineering. IT Professional, vol. 23, no. 1, pp. 62-66, 1 Jan.-Feb. 2021, doi: 10.1109/MITP.2020.3019522.
 Peterssen, G., Hevia, José Luis. Introduction to quantum software development with QPath. https://www.quantumpath.es/index.php/2021/01/13/introduction-to-quantum-software-development-with-qpath/. The QPath Blog. 2021
 Piattini, QPath solves most of the quality problems of quantum computing platforms. https://www.quantumpath.es/index.php/2021/02/11/qpath-solves-most-of-the-quality-problems-of-quantum-computing-platforms/. The QPath Blog. 2021
 The Talavera Manifesto for Quantum Software Engineering and Programming. CEUR Workshop Proceedings. http://ceur-ws.org/Vol-2561/paper0.pdf. 2020
 Hevia, José Luis. QPath Features. https://www.quantumpath.es/index.php/2020/12/10/qpath_features/. The QPath Blog. 2021
 Peterssen, G. QPath, an accelerator of commercial quantum software development. https://www.quantumpath.es/index.php/2020/11/26/qpath_accelerator/. The QPath Blog. 2020.
 Piattini, M. QPath helps secure investment and accelerates the adoption of quantum applications. https://www.quantumpath.es/index.php/2020/11/16/qpath_help_investment/. The QPath Blog. 2020.
 Peterssen, G. QPath, a (very) useful platform for the emerging quantum software business. https://www.quantumpath.es/index.php/2020/12/02/qpath_useful_platform/. The QPath Blog. 2020.
 Peterssen, G., Hevia, José Luis. Introduction to quantum software development with QPath. https://www.quantumpath.es/index.php/2021/01/13/introduction-to-quantum-software-development-with-qpath/. The QPath Blog. 2021
 Peterssen, G. Quantum technology impact: the necessary workforce for developing quantum software. CEUR Workshop Proceedings. http://ceur-ws.org/Vol-2561/paper1.pdf. 2020