Thanks for your question. Currently, VEKOS runs in single-core mode - SMP support is planned but not yet implemented.
The challenge with SMP in VEKOS isn't just synchronization, but maintaining verifiable operation chains across cores. The current verification system in operation_proofs.rs and verification.rs assumes sequential operations for proof generation and validation. Key considerations for SMP implementation include:
1. The VERIFICATION_REGISTRY already uses atomic operations and Mutex protection:
The main work needed for SMP is:
- Per-core scheduling queues
- Distributed verification chain generation
- Cross-core memory barriers for proof validation
- CPU-local operation proof caches
The challenge with SMP in VEKOS isn't just synchronization, but maintaining verifiable operation chains across cores. The current verification system in operation_proofs.rs and verification.rs assumes sequential operations for proof generation and validation. Key considerations for SMP implementation include:
1. The VERIFICATION_REGISTRY already uses atomic operations and Mutex protection:
pub struct VerificationRegistry { proofs: Vec<OperationProof>, current_state: AtomicU64, }
2. Critical data structures like BlockCache and BufferManager are wrapped in Mutex:
pub struct Superblock { pub block_cache: Mutex<BlockCache>, pub buffer_manager: Mutex<BufferManager>, ... }
3. The scheduler (in scheduler.rs) is designed with multi-core in mind:
lazy_static! { pub static ref SCHEDULER: Mutex<Scheduler> = Mutex::new(Scheduler::new()); }
The main work needed for SMP is: - Per-core scheduling queues - Distributed verification chain generation - Cross-core memory barriers for proof validation - CPU-local operation proof caches