Skip to main content

FAQ

Frequently asked questions about SoftQCOS and quantum computing.

General Questions​

What is SoftQCOS?​

SoftQCOS (Quantum Circuit Optimization Service) is a cloud platform for quantum computing that provides:

  • Circuit Optimization - Reduce circuit depth and gate count for better hardware performance
  • Multi-Backend Execution - Run circuits on simulators and real quantum hardware
  • Cost Estimation - Know execution costs before running on QPUs
  • Azure Quantum Integration - Access IonQ, Quantinuum, Rigetti, and PASQAL

Do I need a quantum computer to use SoftQCOS?​

No! SoftQCOS provides access to:

  1. High-performance simulators (free tier available)
  2. Real quantum hardware through Azure Quantum (paid)

You can develop and test entirely on simulators, then deploy to real hardware when ready.

What programming languages are supported?​

  • Python - Full SDK (softqcos-sdk)
  • Command Line - CLI tool (softqcos)
  • REST API - Any language with HTTP support

What quantum frameworks are compatible?​

SoftQCOS accepts circuits from:

  • OpenQASM 2.0 - Universal standard
  • Qiskit - IBM's framework (auto-converts to QASM)
  • Cirq - Google's framework
  • PennyLane - Xanadu's framework
  • Amazon Braket - AWS's format
# Example: Convert Qiskit circuit
from qiskit import QuantumCircuit
from softqcos_sdk import QCOSClient

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

client = QCOSClient()
result = client.execute(qasm=qc.qasm(), shots=1024)

Account & Billing​

How do I get an API key?​

  1. Sign up at portal.softquantus.com
  2. Navigate to Settings β†’ API Keys
  3. Click Create API Key
  4. Copy and store securely (shown only once)

What's included in the free tier?​

FeatureFree TierPaid Plans
Simulator shots/month100,000Unlimited
Circuit optimization1,000/monthUnlimited
API requests/day1,000Unlimited
Azure QuantumβŒβœ…
Priority supportβŒβœ…

How is Azure Quantum usage billed?​

Azure Quantum costs are passed through at cost plus a small processing fee:

  • IonQ: Per-shot pricing (~€0.01-0.03 per shot)
  • Quantinuum: Per-HQC (Hybrid Quantum Credits)
  • Rigetti: Per-shot pricing

Always use estimate_cost() before executing:

estimate = client.azure_quantum.estimate_cost(
circuit=circuit,
target="ionq.aria-1",
shots=100
)
print(f"Cost: €{estimate.cost_eur:.2f}")

Can I set spending limits?​

Yes! In the portal:

  1. Go to Settings β†’ Billing
  2. Set Monthly Budget Limit
  3. Configure alerts at 50%, 80%, 100%

API-level budget control:

client = QCOSClient(
api_key="...",
max_cost_per_job=5.0, # EUR
monthly_budget=100.0 # EUR
)

Technical Questions​

What's the maximum circuit size?​

BackendMax QubitsMax DepthMax Gates
Simulator (Aer)32UnlimitedUnlimited
IonQ Aria25~500~1000
Quantinuum H120~500~500
Rigetti Ankaa84~100~500

For larger circuits, consider:

  • Circuit cutting
  • Tensor network simulation
  • Hybrid classical-quantum algorithms

How do I improve circuit fidelity?​

  1. Optimize the circuit:
optimized = client.optimize(
circuit=circuit,
target="ionq",
objective="max_fidelity"
)
  1. Use fewer shots on QPU (reduces queue time and cost)

  2. Choose the right backend:

    • IonQ/Quantinuum for high-fidelity needs
    • Rigetti for speed and larger circuits
  3. Apply error mitigation:

result = client.execute(
qasm=circuit,
shots=1024,
error_mitigation="zne" # Zero-noise extrapolation
)

Why are my results different from the simulator?​

Real quantum hardware has noise. Expected differences:

SourceSimulatorReal QPU
Gate errors0%0.1-1%
Readout errors0%0.5-5%
DecoherenceNonePresent

This is normal! Use error mitigation or increase shots for better statistics.

Can I run circuits asynchronously?​

Yes! For long-running jobs:

from softqcos_sdk import AsyncQCOSClient
import asyncio

async def run_async():
client = AsyncQCOSClient()

# Submit without waiting
job = await client.submit(qasm=circuit, shots=1024)
print(f"Job ID: {job.job_id}")

# Do other work...

# Check later
result = await client.wait_for_result(job.job_id, timeout=300)
return result

asyncio.run(run_async())

How do I handle rate limits?​

The SDK handles rate limiting automatically with exponential backoff.

For custom handling:

from softqcos_sdk import QCOSClient, RateLimitError
import time

client = QCOSClient()

for circuit in circuits:
try:
result = client.execute(qasm=circuit, shots=1024)
except RateLimitError as e:
print(f"Rate limited. Waiting {e.retry_after}s...")
time.sleep(e.retry_after)
result = client.execute(qasm=circuit, shots=1024)

Rate limits by tier:

TierRequests/secondRequests/day
Free101,000
Starter5010,000
Professional100Unlimited
EnterpriseCustomUnlimited

Optimization Questions​

What optimization objectives are available?​

ObjectiveDescriptionBest For
max_fidelityMaximize circuit fidelityNoisy hardware
min_depthMinimize circuit depthDecoherence-limited
min_gatesMinimize gate countCost optimization
min_cnotsMinimize two-qubit gatesHardware-limited
optimized = client.optimize(
circuit=circuit,
objective="max_fidelity",
target="ionq"
)

How much does optimization help?​

Typical improvements:

Circuit TypeDepth ReductionGate ReductionFidelity Gain
Random20-40%15-30%5-15%
VQE Ansatz30-50%20-40%10-25%
QFT40-60%30-50%15-30%
Grover25-35%20-30%8-15%

Does optimization change circuit behavior?​

No! Optimization preserves the mathematical transformation of the circuit. The optimized circuit produces identical results (on a perfect quantum computer) to the original.


Security Questions​

Is my code/data secure?​

Yes. SoftQCOS security includes:

  • TLS 1.3 encryption in transit
  • AES-256 encryption at rest
  • SOC 2 Type II certified
  • GDPR compliant
  • Circuits are never stored permanently (configurable retention)

Can I use SoftQCOS for proprietary algorithms?​

Absolutely. Your circuits are:

  • Encrypted during transmission
  • Processed in isolated environments
  • Deleted after execution (by default)

Enterprise customers can configure:

  • Private deployment
  • Custom data retention
  • Audit logging

Where is my data processed?​

Default: EU (West Europe - Amsterdam)

Available regions:

  • EU West (Amsterdam)
  • EU North (Dublin)
  • US East (Virginia)
  • US West (California)

Enterprise: On-premises deployment available


Azure Quantum Questions​

Which Azure Quantum providers are available?​

ProviderTargetsTechnology
IonQionq.simulator, ionq.aria-1, ionq.forte-1Trapped Ion
Quantinuumquantinuum.sim.h1-1e, quantinuum.qpu.h1-1Trapped Ion
Rigettirigetti.sim.qvm, rigetti.qpu.ankaa-2Superconducting

Do I need an Azure subscription?​

No! SoftQCOS manages Azure Quantum access for you. Your SoftQCOS credits work directly.

Enterprise customers can connect their own Azure subscription for:

  • Dedicated quotas
  • Reserved capacity
  • Custom billing

How long do QPU jobs take?​

Typical queue times:

ProviderQueue TimeExecution Time
IonQ Aria5-30 min1-5 min
Quantinuum H130-120 min5-15 min
Rigetti Ankaa5-15 min< 1 min

During high-demand periods, queues may be longer. Simulators are instant.


Troubleshooting​

"Authentication failed" error​

# Check your API key
import os
print(os.environ.get("SOFTQCOS_API_KEY", "Not set"))

# Or explicitly set it
client = QCOSClient(api_key="your-api-key")

Common causes:

  • API key not set or typo
  • Key revoked or expired
  • Wrong environment (test vs production)

"Circuit too large" error​

Your circuit exceeds backend limits. Options:

  1. Use a different backend with more qubits
  2. Optimize the circuit first
  3. Use circuit cutting for very large circuits
# Check circuit properties
analysis = client.analyze(circuit)
print(f"Qubits: {analysis.num_qubits}")
print(f"Depth: {analysis.depth}")

"Quota exceeded" error​

You've reached your plan limits. Options:

  1. Wait for quota reset (monthly)
  2. Upgrade your plan
  3. Contact support for temporary increase
# Check current usage
usage = client.usage.get_summary()
print(f"Shots used: {usage.shots_used}/{usage.shots_limit}")

Jobs stuck in "queued" status​

For Azure Quantum jobs:

  1. Check Azure Quantum status: status.azure.com
  2. Some providers have maintenance windows
  3. High demand causes longer queues

You can cancel and retry:

client.azure_quantum.cancel_job(job_id)

Getting Help​

Documentation​

Support Channels​

ChannelResponse TimeBest For
DocumentationInstantSelf-service
Community DiscordHoursGeneral questions
Email: support@softquantus.com24hAccount issues
Enterprise Slack< 1hUrgent issues

Reporting Bugs​

Please include:

  1. SDK version (pip show softqcos-sdk)
  2. Python version
  3. Full error message
  4. Minimal reproduction code

Submit via: