sfc-aqua / quisp

Open source implementation of quantum internet simulation package
BSD 3-Clause "New" or "Revised" License
88 stars 36 forks source link

Qubit Memory Pools: relax RuleSet control of qubits (timeouts, "OR" in RuleSets) #191

Open rdviii opened 3 years ago

rdviii commented 3 years ago

Today, as I understand it, qubits "belong" to a single Rule. They can't proceed until the Condition Clauses of the Rule are met. Condition Clauses are organized as logical AND.

This prevents a couple of things:

This will require implementing better memory pools for the qubits, then modifying the RuleEngine to scan those pools to see which ones meet the criteria. Note that these pools are probably per connection.

rdviii commented 3 years ago

Michal says RuleSets for RGS are likely to require an OR when measuring subtrees in logical X or Z.

rdviii commented 3 years ago

Recall that inside the code, a "Resource" means "a quantum state currently in development", not a range of physical memories or a QNIC, etc.

rdviii commented 3 years ago

Currently, at connection setup time, the physical resources along the path are allocated unconditionally to the connection. That is, in terms of multiplexing, it is currently 100% circuit switched.

rdviii commented 3 years ago

See RuleEngine::ResourceAllocation() https://github.com/sfc-aqua/quisp/blob/ccc456e74f3afa2410816ff09a3c27d55cfe584a/quisp/modules/QRSA/RuleEngine/RuleEngine.cc#L1143