pub struct MPIQuantumSimulator { /* private fields */ }Expand description
MPI-based distributed quantum simulator
This simulator uses MPI for inter-node communication to enable simulation of quantum systems larger than what can fit in a single node’s memory.
Implementations§
Source§impl MPIQuantumSimulator
impl MPIQuantumSimulator
Sourcepub fn new(config: MPISimulatorConfig) -> QuantRS2Result<Self>
pub fn new(config: MPISimulatorConfig) -> QuantRS2Result<Self>
Create a new MPI-based quantum simulator
Sourcepub fn initialize(&mut self) -> QuantRS2Result<()>
pub fn initialize(&mut self) -> QuantRS2Result<()>
Initialize the quantum state to |0…0>
Sourcepub fn apply_single_qubit_gate(
&mut self,
qubit: usize,
gate_matrix: &Array2<Complex64>,
) -> QuantRS2Result<()>
pub fn apply_single_qubit_gate( &mut self, qubit: usize, gate_matrix: &Array2<Complex64>, ) -> QuantRS2Result<()>
Apply a single-qubit gate
Sourcepub fn apply_two_qubit_gate(
&mut self,
control: usize,
target: usize,
gate_matrix: &Array2<Complex64>,
) -> QuantRS2Result<()>
pub fn apply_two_qubit_gate( &mut self, control: usize, target: usize, gate_matrix: &Array2<Complex64>, ) -> QuantRS2Result<()>
Apply a two-qubit gate
Sourcepub const fn barrier(&self) -> QuantRS2Result<()>
pub const fn barrier(&self) -> QuantRS2Result<()>
Perform a global barrier synchronization
Sourcepub fn get_probability_distribution(&self) -> QuantRS2Result<Vec<f64>>
pub fn get_probability_distribution(&self) -> QuantRS2Result<Vec<f64>>
Compute global probability distribution
Sourcepub fn measure_all(&self) -> QuantRS2Result<Vec<bool>>
pub fn measure_all(&self) -> QuantRS2Result<Vec<bool>>
Measure all qubits
Sourcepub fn get_local_state(&self) -> QuantRS2Result<Array1<Complex64>>
pub fn get_local_state(&self) -> QuantRS2Result<Array1<Complex64>>
Get local state for debugging/testing
Sourcepub fn get_stats(&self) -> QuantRS2Result<MPISimulatorStats>
pub fn get_stats(&self) -> QuantRS2Result<MPISimulatorStats>
Get simulator statistics
Sourcepub fn reset(&mut self) -> QuantRS2Result<()>
pub fn reset(&mut self) -> QuantRS2Result<()>
Reset the simulator
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MPIQuantumSimulator
impl RefUnwindSafe for MPIQuantumSimulator
impl Send for MPIQuantumSimulator
impl Sync for MPIQuantumSimulator
impl Unpin for MPIQuantumSimulator
impl UnwindSafe for MPIQuantumSimulator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.