Skip to content

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

Q20 Service in MyCSC

There are currently some issues with the Q20 service for projects that have Q20 allocations. If you cannot find the Aalto-Q20 service or are otherwise experiencing issues please contact the CSC Service Desk at servicedesk@csc.fi.

Technical details

Architecture and Topology

Aalto Q20

Aalto Q20 is a superconducting IQM quantum computer operated by Aalto University. Q20 contains 20 qubits in a aquare latttice topology where qubits are connected to their nearest neighbours in a 2D grid. Q20 has two broken couplers. The coupler between qubits 16 and 17 and the coupler between qubuts 9 and 14.

Q20's node mapping

Native Gates

Q20's native are are the two-qubit controlled-z gate and the one-qubit phased rx gate.

VTT Q50

VTT Q50 is a 53-qubit quantum computer co-developed by VTT and IQM using superconducting qubits. The qubits are arranged in a Square lattice topology, a 2D grid where each qubit interacts directly with its nearest neighbors. The device has one broken tunable coupler between qubits QB18 and QB10.

Q50's node mapping

Native Gates

Q50's native gates are the Phased x-rotation gate (prx) and controlled-z gate (cz)

Defining topology and gates in Qiskit and Cirq

The topology, supported instructions and backend specific metadata can be queried directly with Qiskit on IQM or Cirq on IQM. For example:

# Qiskit
from iqm.qiskit_iqm import IQMProvider
provider = IQMProvider(iqm_server_url, quantum_computer="q50")
backend = provider.get_backend()
print(f'Native operations of the backend: {backend.operation_names}')
print(f'Coupling map of the backend: {backend.coupling_map}')
# Cirq
from iqm.cirq_iqm import Adonis
adonis = Adonis()
print(adonis.metadata.qubit_set)
print(adonis.metadata.gateset)
print(adonis.metadata.nx_graph)

Further Reading