Software package which allows users to interface with the Intel Quantum Computing stack.
50K+
This docker image is for Intel® Quantum SDK.
Details: Intel® Quantum
Computing.
Get help: Intel® Quantum SDK - Intel
Community.
If you want to incorporate results from the Intel® Quantum SDK in your work, please cite:
Khalate, P., Wu, X.-C., Premaratne, S., Hogaboam, J., Holmes, A., Schmitz, A., Guerreschi, G. G., Zou, X. & Matsuura, A. Y., arXiv:2202.11142 (2022).
Intel® Quantum SDK (Software Development Kit) is a software package which allows users to interface with the Intel quantum computing stack. This includes:
An intuitive user interface based on the C++ programming language.
A sequence of optimizations and decompositions based on the LLVM compiler framework and specifically targeted at the Intel(R) Quantum Computing Stack.
A full compilation flow that produces an executable using the user's choice of backends compatible with Intel quantum hardware.
Authoring a quantum-accelerated application in the Intel® Quantum SDK closely follows the programming paradigm of other hardware accelerator development environments. Quantum programs are written in a C++ imperative programming environment that has been extended to allow the user to express quantum circuits at the level of primitive quantum logical operations. Depending on whether the user is targeting a simulation environment or qubit hardware, our quantum runtime library will direct the quantum workloads to the appropriate backend during runtime execution. There are currently two backends available to be built into the binary, the Intel® Quantum Simulator (IQS) and the Quantum Dot (QD) simulator. IQS provides a full-state-vector qubit simulation with a complete description of the quantum state of the qubits defined. The Quantum Dot simulator couples an equivalent state-vector simulation to a simulation of the physical quantum operations thereby offering a more realistic but computationally intense result.
To find out more about the core concepts of quantum computing, such as qubit mathematics and logic or quantum circuit representation, we recommend using an introductory textbook like "Quantum Computation and Quantum Information" by Nielsen and Chuang or "Quantum Computing for Computer Scientists" by Yanofsky and Mannucci.
To brush up on C++, we recommend the latest edition of "Tour of C++" by Bjarne Stroustrup. In our code, we strive to adhere to the LLVM style standard to simplify working with our APIs.
The Intel® Quantum SDK container is designed to be operated in a terminal, like using SSH to login to a remote system. Typically, users run a container image with the Docker engine. When starting your container image from a terminal on your system the following command will optionally retrieve then start a container image interactively to provide a shell in your Intel® Quantum SDK container instance.
~/$ docker run --name myIQSDK -it intellabs/intel_quantum_sdk /bin/bash
Alternatively, you can use a graphical application like Docker Desktop to handle container management and expose an interactive command line interface. For Docker Desktop help please see the documentation on integrated terminal use.
Note: A full discussion on container use is outside the scope of this document, please explore the documentation of your preferred container engine for useful tips and techniques.
Your session will start in the container's empty /home directory with the shell environment already set to use the Intel® Quantum SDK. A nice first step is to list the installed components of the Intel® Quantum SDK:
/home# ls ${IQSDK_ROOT}
First, note that ${IQSDK_ROOT} is an environment variable that points to the current installation folder of the Intel® Quantum SDK. Please take a moment to explore the contents, in particular note the quantum-examples folder. From there you can copy one of the example source files to your working directory (/home), compile it using the Intel® Quantum Compiler and execute the quantum algorithm by issuing the following commands:
/home# cp ${IQSDK_ROOT}/quantum-examples/teleport.cpp .
/home# intel-quantum-compiler teleport.cpp
/home# ./teleport
Editing your C++ source files in the container can be facilitated by using the VS Code development environment attached to your container, please see the Dev Containers section on terminal use
Note: The Intel® Quantum SDK container image does not come with an editor installed. To edit the source code of teleport.cpp while inside the container; you can install an editor like nano, emacs or vim (for simple viewing, use the built-in 'more' pager):
/home# more teleport.cpp
...
or
/home# apt update && apt install nano
...
/home# nano teleport.cpp
...
You may notice that all your work stays inside the container and can be easily lost, depending on the way that your container has been started. To maintain access to your files you can copy a file from the container one at a time or you may find it more convenient to bind a host system folder to a container folder. From inside the container create a folder called 'my_share' then exit the container and create a corresponding folder on your system:
/home# mkdir my_shared
/home# exit
~/$ mkdir my_iqsdk_data
Now add the following option to your container run command:
~/$ docker run --name myIQSDK -it -v ./my_iqsdk_data:/home/my_shared intellabs/intel_quantum_sdk /bin/bash
Now that you can persist your work you may find it convenient to copy the PDF reference documents from the installed path of your container to your shared folder for easy viewing on your system.
/home# cp ${IQSDK_ROOT}/*.pdf my_shared/
This concludes the quick start: Enjoy exploring the realm of quantum computing with the Intel® Quantum SDK.
The state vector simulation requires an amount of memory increasing with the number of qubits, approximately 1.5x the size of the state vector. As a complex double value requires 16 bytes, the single-node memory required is
$16 bytes * 1.5 * 2^{num_qubits}$
Keep in mind that the data structures of the C++ logic also have their own memory requirements in addition to the simulation requirements above.
You can contribute to the development of the Intel® Quantum Compiler frontend by sharing your ideas and innovations at our open sourced https://github.com/intel/quantum-intrinsics repository. We have created another open-source project dedicated to exposing the intermediate representation for novel features and optimization opportunities at the https://github.com/intel/quantum-passes repository. We look forward to your participation.
You can get technical support and report any bugs encountered by visiting Intel Communities at the following url: https://community.intel.com/t5/Intel-Quantum-SDK/bd-p/intel-quantum-sdk, we also host a Discord channel for real time chats about quantum computing at https://discord.gg/b8bJAbr34z These are great places to ask questions and share ideas.
This docker image installs third party components licensed under various open source licenses. The terms under which those components may be used and distributed can be found with the license document that is provided with those components. Please familiarize yourself with those terms to ensure your distribution of those components complies with the terms of those licenses.
Image Tag intellabs/intel_quantum_sdk:v1.1-source provides sources for GPL/LGPL/MPL components.
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses and potential fees for all software contained within. We will have no indemnity or warranty coverage from suppliers.
Intel® Quantum SDK BINARY SOFTWARE LICENSE AGREEMENT
IMPORTANT NOTICE -- PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE
This agreement (the "Agreement") is between you, or the company or other legal entity ("Legal Entity") that you represent and warrant you have the legal authority to bind, (each, "You" or "Your") and Intel Corporation and its subsidiaries (collectively, "Intel") regarding Your use of the Software. By downloading, installing, copying or otherwise using the Software, You agree to be bound by the terms of this Agreement. If You do not agree to the terms of this Agreement, or do not have legal authority or required age to agree to them, do not download, install, copy or otherwise use the Software.
DEFINITIONS. "Derivative Work" means a derivative work of the Software as defined in 17 U.S.C. § 101 et seq. "Evaluation Term" means the period from when the Software is provided to You by Intel (the "Effective Date") and the date that the Agreement is terminated pursuant to Section 10. "Software" means the Intel® Quantum SDK software in binary form, and any updates or releases thereto provided to You by Intel under this Agreement. The Intel® Quantum SDK may not be fully functional or tested and may contain bugs or errors, which Intel may substantially modify in its development. Software does not include Third Party Programs. "Reciprocal Open Source Software" means any software that is subject to a license which requires that (a) it must be distributed in source code form; (b) it must be licensed under the same open source license terms; and (c) its Derivative Works must be licensed under the same open source license terms. Examples of this type of license are the GNU General Public License or the Mozilla Public License. "Third Party Programs" mean the third party software (if any) listed in the "third-party-programs.txt" or other similarly-named text file that may be included in the Software.
LIMITED LICENSE. Subject to Your compliance with the terms and conditions of this Agreement, Intel grants You a limited, nonexclusive, nontransferable, revocable, worldwide, no fee license during the Evaluation Term of this Agreement, without the right to sublicense, under Intel's copyrights, to (a) reproduce a reasonable number of copies of the Software, and use the Software solely for evaluation and testing purposes; (b) allow contractors working on Your behalf or at Your behest to perform the rights in subsection (a), provided that You remain fully liable to Intel for the actions and inactions of those contractors. You may not (i) modify or incorporate the Software into any product You are developing; (ii) continue to use the Software if and once a commercial version is released; or (iii) redistribute the Software to any third party.
OWNERSHIP & LICENSE RESTRICTIONS. All right, title and interest in and to the Software and associated documentation are and will remain the exclusive property of Intel and its licensors or suppliers. Unless expressly permitted under the Agreement, You will not, and will not allow any third party to (i) use, copy, distribute, sell or offer to sell the Software or associated documentation; (ii) modify, adapt, enhance, disassemble, decompile, reverse engineer, change or create Derivative works from the Software except and only to the extent as specifically required by mandatory applicable laws or any applicable third party license terms accompanying the Software; (iii) use or make the Software available for the use or benefit of third parties; or (iv) modify, create a Derivative Work, link, or distribute the Software so that any part of it becomes subject to the license requirements of Reciprocal Open Source Software. You acknowledge that an essential basis of the bargain in this Agreement is that Intel grants You no licenses or other rights including, but not limited to, patent, copyright, trade secret, trademark, trade name, service mark or other intellectual property licenses or rights with respect to the Software and associated documentation, by implication, estoppel or otherwise, except for the licenses expressly granted above. You acknowledge there are significant uses of the Software in its original, unmodified and uncombined form. You may not remove any copyright notices from the Software. You agree to prevent any unauthorized copying of the Software.
PUBLICATION. You and Intel understand and agree that You are authorized to publish the results of Your research and development activities that are based on use of the Software; however, You hereby acknowledge and agree that any such publication must include the following citation: "Khalate, P., Wu, X.-C., Premaratne, S., Hogaboam, J., Holmes, A., Schmitz, A., Guerreschi, G. G., Zou, X. & Matsuura, A. Y., arXiv:2202.11142 (2022)."
THIRD PARTY PROGRAMS. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. Such separate license terms (and not this Agreement) govern Your use of the Third Party Programs.
LICENSE TO FEEDBACK. This Agreement does not obligate You to provide Intel with materials, information, comments, suggestion or other communication regarding the features, functions, performance or use of the Software ("Feedback"). If You do provide Intel with Feedback, You grant to Intel and its affiliates a non-exclusive, perpetual, sublicensable, irrevocable, worldwide, royalty-free, fully paid-up and transferable license, to and under all of Your intellectual property rights, to publicly perform, publicly display, reproduce, use, make, have made, sell, offer for sale, distribute, import, create derivative works of and otherwise exploit any Feedback regarding the Software provided by You or on Your behalf.
NO OBLIGATION. Intel may make changes to the Software, or items referenced therein, at any time without notice. Intel is not obligated to support, update, provide training for, or develop any further version of the Software or to grant any license thereto.
WARRANTY DISCLAIMER. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the accuracy or completeness of any information, text, graphics, links or other items within the Software.
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL OR ITS AFFILIATES, LICENSORS OR SUPPLIERS (INCLUDING THEIR RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AND AGENTS) BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, OR LOST DATA) ARISING OUT OF OR IN RELATION TO THIS AGREEMENT, INCLUDING THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY IN PART NOT APPLY TO YOU. THE SOFTWARE LICENSED HEREUNDER IS NOT DESIGNED OR INTENDED FOR USE IN ANY MEDICAL, LIFE SAVING OR LIFE SUSTAINING SYSTEMS, TRANSPORTATION SYSTEMS, NUCLEAR SYSTEMS, OR FOR ANY OTHER MISSION CRITICAL APPLICATION IN WHICH THE FAILURE OF THE SOFTWARE COULD LEAD TO PERSONAL INJURY OR DEATH. YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION. THE LIMITED REMEDIES, WARRANTY DISCLAIMER AND LIMITED LIABILITY ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN INTEL AND YOU. YOU ACKNOWLEDGE INTEL WOULD BE UNABLE TO PROVIDE THE SOFTWARE WITHOUT SUCH LIMITATIONS.
TERM, TERMINATION AND SURVIVAL. This Agreement becomes effective on the Effective Date and remains in effect until the earlier of: (i) The date Intel terminates the Agreement with at least 30 days' prior written notice to You (to include by email), (ii) When You stop use of the Software, permanently remove the Software from your systems, and destroy the Software, or (iii) Immediately upon violation of any of the Agreement terms or conditions by You. Upon termination of this Agreement, all licenses granted to You hereunder terminate immediately. Upon termination, You will immediately stop use of the Software, permanently remove the Software from your systems, and destroy the Software (including providing certification of such removal and destruction to Intel). The following sections will survive termination of this Agreement: Section 1, 3 (only with respect to the first sentence), 4, 5, 6, 8, 9, 10, 11, 15, 16 and 17.
GOVERNING LAW AND JURISDICTION. This Agreement and any dispute arising out of or relating to it will be governed by the laws of the U.S.A. and Delaware, without regard to conflict of laws principles. The parties exclude the application of the United Nations Convention on Contracts for the International Sale of Goods (1980). The state and federal courts sitting in Delaware, U.S.A. will have exclusive jurisdiction over any dispute arising out of or relating to this Agreement. The parties consent to personal jurisdiction and venue in those courts. A party that obtains a judgment against the other party in the courts identified in this section may enforce that judgment in any court that has jurisdiction over the parties.
EXPORT. You acknowledge that the Software and all related technical information are subject to export controls and You agree to comply with all laws and regulations of the United States and other applicable governments governing export, re-export, import, transfer, distribution, and use of the Software. In particular, but without limitation, the Software may not be exported or re-exported (a) into any U.S. embargoed countries or (b) to any person or entity listed on a denial order published by the U.S. government or any other applicable governments. By using the Software, You represent and warrant that You are not located in any such country or on any such list. You also agree that You will not use the Software for, or sell or transfer them to a third party who is known or suspected to be involved in, any purposes prohibited by the U.S. government or other applicable governments, including, without limitation, the development, design, manufacture, or production of nuclear, missile, chemical or biological weapons.
GOVERNMENT RESTRICTED RIGHTS. The Software is a commercial item (as defined in 48 C.F.R. 2.101) consisting of commercial computer software and commercial computer software documentation (as those terms are used in 48 C.F.R. 12.212). This commercial computer software and related documentation is provided to end users for use by and on behalf of the U.S. Government with only those rights as are granted to all other end users pursuant to the terms and conditions herein.
ASSIGNMENT. You may not delegate, assign or transfer this Agreement, the license(s) granted or any of Your rights or duties hereunder, expressly, by implication, by operation of law, or otherwise and any attempt to do so, without Intel's express prior written consent, will be null and void. Intel may assign, delegate and transfer this Agreement, and its rights and obligations hereunder, in its sole discretion.
ENTIRE AGREEMENT. This Agreement contains the complete and exclusive agreement and understanding between the parties concerning the subject matter of this Agreement, and supersedes all prior and contemporaneous proposals, agreements, understanding, negotiations, representations, warranties, conditions, and communications, oral or written, between the parties relating to the same subject matter. You acknowledge and agree that in entering into this Agreement You have not relied on, and will not be entitled to rely on, any oral or written representations, warranties, conditions, understanding, or communications that are not expressly set forth in this Agreement. The express provisions of this Agreement control over any course of performance, course of dealing, or usage of the trade inconsistent with any of the provisions of this Agreement. The provisions of this Agreement will prevail notwithstanding any different, conflicting, or additional provisions that may appear on any purchase order, acknowledgement, invoice, or other writing issued by either party in connection with this Agreement. No modification or amendment to this Agreement will be effective unless in writing and signed by authorized representatives of each party, and must specifically identify this Agreement by its title and version; except that Intel may make changes to the Agreement as it distributes new versions of the Software. If You received a copy of this Agreement translated into another language, the English language version of this Agreement will prevail in the event of any conflict between versions.
SEVERABILITY AND WAIVER. The parties intend that if a court holds that any provision or part of this Agreement is invalid or unenforceable under applicable law, the court will modify the provision to the minimum extent necessary to make it valid and enforceable, or if it cannot be made valid and enforceable, the parties intend that the court will sever and delete the provision or part from this Agreement. Any change to or deletion of a provision or part of this Agreement under this Section will not affect the validity or enforceability of the remainder of this Agreement, which will continue in full force and effect. The failure of a party to require performance by the other party of any provision hereof will not affect the full right to require such performance at any time thereafter; nor will waiver by a party of a breach of any provision hereof constitute a waiver of the provision itself.
PRIVACY. YOUR PRIVACY RIGHTS ARE SET FORTH IN INTEL'S PRIVACY NOTICE, WHICH FORMS A PART OF THIS AGREEMENT. PLEASE REVIEW THE PRIVACY NOTICE AT HTTP://WWW.INTEL.COM/PRIVACY TO LEARN HOW INTEL COLLECTS, USES AND SHARES INFORMATION ABOUT YOU.
Content type
Image
Digest
sha256:1133e306b…
Size
5.1 GB
Last updated
almost 2 years ago
docker pull intellabs/intel_quantum_sdk