How devus-org/devq works
DevQ is quantum execution middleware: users submit OpenQASM jobs through QShell, which parses them into a hardware-independent circuit representation; the kernel manages job lifecycle, routes each job to one feasible device, and that device’s local scheduler and allocator prepare execution through a provider. Users can inspect devices, errors, mappings, and job activity in the shell. The graph follows the documented architecture and sampled module roles; some internal wiring and individual shell inspection commands are based on README descriptions rather than sampled implementations.
Main entry points: kernel.py Kernel · qshell.py QShell · base_provider.py Provider Contract · device_context.py Device Context
Components 25
User Interface
- QShell
shell/qshell.py - Job Parser
shell/parser.py
Circuit Frontends
- Frontend Resolver
frontends/resolver.py - QASM2 Frontend
frontends/qasm2/qasm2_frontend.py - QASM2 Parser
frontends/qasm2/parser.py - CircuitRep
circuits/circuit_rep.py - Execution Result
circuits/execution_result.py
Kernel Orchestration
- Kernel
kernel/kernel.py - Job Control Block
kernel/process/qcb.py - Process Table
kernel/process/process_table.py - Job Lifecycle
kernel/process/lifecycle.py - Device Router
kernel/router/base_router.py - Noise Router
kernel/router/noise_router.py - Kernel Events
kernel/events.py
Device Execution
- Device Context
kernel/device_context.py - Job Scheduler
kernel/scheduler/base_scheduler.py - Memory Manager
kernel/memory/memory_manager.py - Qubit Allocator
kernel/memory/allocators/base_allocator.py - Qubit Pool
kernel/memory/qubit_pool.py
Providers
- Quantum Device
hardware/device.py - Provider Contract
providers/base_provider.py - DevQ Simulator
providers/devq/devq_simulated_provider.py - IBM Providers
providers/ibm/ibm_provider.py
Other components
- User
- Quantum Backend
Connections 29
- User → QShell: submits jobs
- User → QShell: inspects runtime
- QShell → Job Parser: parses arguments
- QShell → Frontend Resolver: selects frontend
- Frontend Resolver → QASM2 Frontend: dispatches source
- QASM2 Frontend → QASM2 Parser: parses QASM
- QASM2 Parser → CircuitRep: builds circuit
- QShell → Kernel: submits circuit
- Kernel → Job Control Block: creates job
- Kernel → Process Table: tracks jobs
- Kernel → Job Lifecycle: advances state
- Kernel → Device Router: routes job
- Device Router → Noise Router: selects policy
- Device Router → Device Context: checks candidates
- Kernel → Device Context: dispatches job
- Device Context → Job Scheduler: queues job
- Job Scheduler → Memory Manager: requests qubits
- Memory Manager → Qubit Allocator: allocates circuit
- Memory Manager → Qubit Pool: reserves qubits
- Device Context → Quantum Device: targets device
- Quantum Device → Provider Contract: executes through
- DevQ Simulator → Provider Contract: implements
- IBM Providers → Provider Contract: implements
- Provider Contract → Quantum Backend: submits execution
- Quantum Backend → Provider Contract: returns results
- Provider Contract → Execution Result: produces result
- Kernel → Kernel Events: records activity
- QShell → Kernel Events: displays events
- QShell → Device Context: inspects devices