Releases: sequence-toolbox/SeQUeNCe
Component Updates
This is a minor update, adding an externally developed mirror component. Additionally, an acknowledgement of the Quantum++ package has been added to the README. This package is used for the parallel quantum manager server implemented in C++.
Parallel Simulation
After a long development, this release provides full support for parallel simulation. This involves heavily modifying the kernel to include the ParallelTimeline
class, which may operate on separate processes and communicate via regular synchronization. The interface provided to other modules remains the same, so the parallel kernel may be easily integrated with sequential simulations.
This release also includes some tweaks and optimizations to other simulator code; a more complete list of changes is provided in CHANGELOG.md
. The documentation has also been updated with detailed information on the operation of parallel simulations.
Parallel Simulation Preparations
This version changes many of the back-end working of SeQUeNCe in preparation for parallel execution support. This includes moving all random number generation to nodes, reworking events to support entity names as arguments, tweaking the behavior of entanglement and reservation protocols, and more (please see CHANGELOG.md
for more details).
This version of the simulator still runs as a sequential program; the parallelized simulator will be released soon, but may be previewed on the parallel
branch.
Parallel Paper
This is the SeQUeNCe release code used in preparation of our parallel simulation publication. The corresponding preprint may be found on arXiv.
Parallel Paper: Optimize Messaging
This is the code used for testing the performance of our parallel version for our parallel paper. Specifically, this version optimizes bunching of global QSM requests. The corresponding preprint may be found on arXiv.
Parallel Paper: Optimize Offloading
This is the code used for testing the performance of our parallel version for our parallel paper. Specifically, this version only optimizes traffic offloading to the local processes. The corresponding preprint may be found on arXiv.
Parallel Paper: No Optimization
This is the code used for testing the performance of our parallel version for our parallel paper. Specifically, this version has no optimization. The corresponding preprint may be found on arXiv.
Quantum Manager and One-Way Channels
This version includes the addition of a quantum manager for tracking memory states, as well as changing all optical channels to operate in one direction only. Addition of the quantum manager also allowed for the creation of a circuit class to apply quantum circuit operations. Protocols have been modified for these changes, and the entanglement generation protocol has also been substantially rewritten.
Logging and Caching
Add logging system using python default logging library (see log module), modify qubit measurement method to utilize caching
Entity Observers
Add observer functionality to entities, replacing the old push/pop method.