Configuration
QPyth can be configured through environment variables, configuration files, or programmatic settings.
Environment Variables
IBM Quantum Hardware
# Required for hardware execution
export QISKIT_IBM_TOKEN="your-ibm-quantum-token"
# Optional: Specify default backend
export QPYTH_BACKEND="ibm_brisbane"
# Optional: Set default number of shots
export QPYTH_SHOTS="1024"
Execution Mode
# Set execution mode: simulator, noisy_simulator, or hardware
export QPYTH_MODE="simulator"
# For noisy simulation, specify noise profile
export QPYTH_NOISE_PROFILE="ibm_brisbane"
Web UI
# Set backend host
export QPYTH_HOST="0.0.0.0"
# Set backend port
export QPYTH_PORT="8000"
# Enable/disable rate limiting
export QPYTH_RATE_LIMIT="true"
Configuration Files
TOML Configuration
Create a config.toml file in your project directory:
[backend]
name = "ibm_brisbane"
shots = 1024
[execution]
mode = "simulator" # simulator, noisy_simulator, hardware
[noise]
profile = "ibm_brisbane"
[web]
host = "0.0.0.0"
port = 8000
rate_limit = true
Python Configuration
from quantumpytho.config import QuantumConfig, ExecutionMode
# Create custom configuration
config = QuantumConfig(
backend="ibm_brisbane",
shots=2048,
mode=ExecutionMode.NOISY_SIMULATOR,
noise_profile="ibm_brisbane"
)
# Use configuration
from quantumpytho.engine import QuantumEngine
engine = QuantumEngine(config=config)
Available Noise Profiles
QPyth includes noise profiles from IBM Quantum calibration data:
ibm_brisbane- 127-qubit processoribm_sherbrooke- 127-qubit processoribm_kyoto- 127-qubit processoribm_osaka- 127-qubit processoribm_perth- 127-qubit processoribm_quebec- 127-qubit processoribm_hanoi- 27-qubit processoribm_cusco- 27-qubit processoribm_algiers- 27-qubit processoribm_toronto- 27-qubit processor
Each profile includes: - Average T1 and T2 times - Readout error rates - Gate error rates - Qubit connectivity
Execution Modes
Simulator (Ideal)
Default mode using Qiskit Aer with no noise:
Noisy Simulator
Realistic simulation using IBM calibration data:
Hardware
Run on real IBM Quantum hardware:
Advanced Configuration
Custom Noise Models
from qiskit_aer.noise import NoiseModel
from quantumpytho.modules.noise_builder import build_noise_model_from_profile
# Load custom noise profile
noise_model = build_noise_model_from_profile("custom_profile")
# Use with simulator
from qiskit_aer import AerSimulator
simulator = AerSimulator(noise_model=noise_model)
Backend Selection
from quantumpytho.modules.hardware_ibm import IBMHardwareEngine
# Connect to IBM Quantum
engine = IBMHardwareEngine()
engine.connect()
# List available backends
backends = engine.list_backends()
print(backends)
# Select least busy backend
backend = engine.select_backend(min_qubits=5)
Troubleshooting
IBM Quantum Token Issues
If you encounter authentication errors:
- Get your token from IBM Quantum
- Set the environment variable:
- Verify connection:
Noise Profile Not Found
If a noise profile is not available:
- Check available profiles:
- Use a different profile or fall back to ideal simulator
Performance Issues
For better performance:
- Increase shots for more accurate results
- Use noisy simulator instead of hardware for testing
- Optimize circuit depth
- Use appropriate backend for your circuit size
Next Steps
- CLI Usage - Learn about the command-line interface
- Noisy Simulation - Deep dive into noise modeling
- API Reference - Complete API documentation