Quantum Computing Simulators
The ability of quantum computing is expanding day by day, and quantum computing is making the execution of some computational tasks possible, such as:
- Simulating quantum systems (e.g., protein folding, molecular dynamics, and so on).
- Optimization problems (e.g., traveling salesman, maximum cut, Grover’s search, and so on).
- Cryptography (e.g., network security).
- Machine learning (e.g., classifiers).
Quantum simulators are one of a kind for understanding the capability and diversity of quantum computers. Quantum simulators help us understand the logic behind quantum computing with various applications and how to operate and integrate them into our skill set.
As we are in the Noisy Intermediate Scale Quantum (NISQ) era of quantum computing, many quantum computing algorithms and procedures exhibit exponential scaling, which can quickly become computationally intensive. Even for a small number of qubits, therefore, simulations can consume significant resources and time. The computational time that can drastically change (e.g., from 1 second to 1 hour) with a small increase in the qubit number (e.g., 10).
List of Simulators
The Quantum simulators can be used to test your own quantum circuits and algorithms on our HPC systems.
The following links provide an introductory-level document of the various quantum simulators we provide:
Each simulator has advantages, making it possible to choose the best simulator for your task.
- Qiskit is developed by IBM and is currently the most widely adopted Software Development Kit (SDK) with constant updates, many methods and tutorials, and a good simulator (Qiskit-aer) which can be executed on CPUs and GPUs.
- Qulacs is a very fast simulator across the board, can be executed on GPUs, and can optimise your circuits for even faster execution.
- Cirq is developed by Google and can simulate circuits executed on real-world qubit architectures. It also has multiple simulators included in its toolkit, e.g., Qsim, which is faster than the default Cirq simulator and provides multi-threading capabilities.
- QuTip is designed with a focus on physics applications, and thus has a massive library of methods for that goal.
- Qibo is a large open-source quantum ecosystem with many applications and tutorials to explore. It is a decently fast simulator to boot on CPUs and GPUs.
Quantum Simulator | Core Advantages | Applications | Simulator of Choice for | Package Dependencies |
---|---|---|---|---|
Qiskit Aer (CPU & GPU) | High-performance simulation for IBM Qiskit circuits, Supports GPU acceleration with CUDA, Integration with Qiskit ecosystem, Noise modeling for realistic simulations, Suitable for variational algorithms and benchmarking | Statevector, unitary, noise simulation and error mitigation | General user, educators | qiskit , qiskit-aer , qiskit-algorithms , qiskit-machine-learning , qiskit-nature , qiskit-optimization , qiskit-finance , qiskit-dynamics , qiskit-ibm-runtime |
Qulacs (CPU & GPU) | Highly optimized for CPU with multi-threading and very fast gate operations, GPU acceleration for large-scale circuits, Designed for performance, Flexible API for circuit optimization, Supports Python and C++ | GPU acceleration, hybrid classical-quantum algorithms | Optimization researchers | qulacs , qulacs-gpu |
Cirq & Qsim | User-friendly for Google’s quantum hardware simulations, Qsim optimized for speed with GPU support (less efficient than Qulacs), Excellent for NISQ device simulations, Supports tensor network simulations, Ideal for Google-like hardware setups | Integration with Google’s quantum hardware, custom noise models | Neural network researchers with tensorflow | cirq , qsimcirq |
QuTip | Focused on open quantum systems simulation with a rich library for Lindblad and master equations, Limited GPU support, Best for quantum optics and decoherence studies, Not ideal for large-scale gate-based simulations | Tools for modeling dissipative systems, time-dependent Hamiltonians | Physicists | qutip |
Qibo | Easy-to-use Python interface with tensor network backends for CPU, Native GPU acceleration using Tensor Flow or CuPy, Strong focus on high-level abstractions, Supports hybrid quantum-classical workflows, Scalable with different backend | Simple API, supports CPU/GPU, and distributed computing, error mitigation | Beginners, educators | qibo , qibojit |
How to Access
All simulators are provided as containers. Any system account, as applied for and instructed in Getting an account, has access to the simulator containers. Users can then choose to access the simulators either via SSH (also refer to Logging in), or on JupyterHub. Additionally, each simulator container contains some commonly used data science packages such as scipy, numpy, matplotlib, pandas, etc.
The following table contains all the quantum simulator with their respect container path. Please use it in the further instructions below.
Quantum Simulator | CONTAINER_PATH |
---|---|
Qibo-CPU | /sw/container/quantum-computing/Qibo-CPU/qibo-cpu.sif |
Qibo-GPU | /sw/container/quantum-computing/Qibo-GPU/qibo-gpu.sif |
Qiskit-CPU | /sw/container/quantum-computing/Qiskit-CPU/qiskit-cpu.sif |
Qiskit-GPU | /sw/container/quantum-computing/Qiskit-GPU/qiskit-gpu.sif |
Qsim | /sw/container/quantum-computing/Qsim/qsim.sif |
Qulacs-CPU | /sw/container/quantum-computing/Qulacs-CPU/qulacs-cpu.sif |
Qutip | /sw/container/quantum-computing/Qutip/qutip.sif |
We do not provide a separate container just for cirq
as it can be imported in Qsim
container.
Terminal
The standard software to run containers on our clusters is the Apptainer software. Please refer to the Apptainer page in our documentation for instructions how to use Apptainer. Use the quantum simulators path structure to find your desired simulator. The following code is sufficient to launch the container and execute your file:
module load apptainer
apptainer exec --bind $WORK,$TMPDIR <CONTAINER_PATH>
python <YOUR_FILE_PATH>
Jupyter.HPC
- Login at jupyter.hpc.gwdg.de with your AcademicCloud account.
- Keep the default ‘HPC project’ and ‘job profile’, and tick the box ‘Set your own Apptainer container location’.
- In the new available entry field, put the
CONTAINER_PATH
as defined above. - Set the rest of the parameters to your liking and press start to spawn your server.
Welcome to the GWDG Quantum Computing Channel
We are excited to introduce our new Quantum Computing Channel, where you can stay up-to-date on the latest developments and advancements in the field of quantum computing. Our channel is a platform for researchers, students, and professionals to share knowledge, ideas, and experiences related to quantum computing.
Join Our Community
We invite you to join our community and become a part of our vibrant discussion forum. Here, you can engage with our team and other members of the quantum computing community, ask questions, share your expertise, and learn from others.
Stay Informed
Our channel will feature regular updates on the latest research, breakthroughs, and innovations in quantum computing. You will have access to exclusive content, including: Research papers and publications, conference proceedings and presentations, news and updates on new projects and initiatives.
Get Involved
We encourage you to participate in our discussions and share your thoughts, ideas, and experiences. Our community is a place where you can:
- Ask questions and get answers from experts in the field
- Share your research and get feedback from others
- Collaborate with others on projects and initiatives
- Stay informed about the latest developments in quantum computing
Join Our Matrix Channel
To join our Matrix channel, simply click on the link below. We look forward to welcoming you to our quantum computing community
Further Information
For an overview of our approach to quantum computing, refer to our user group page Quantum Computing.
Please refer to the FAQ page, or for more specific questions, contact us at support@gwdg.de.