Pyqrack

Latest version: v1.33.1

Safety actively analyzes 685838 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 32 of 55

1.0.6

FSim()` gate had bugged edge cases in `QEngine` and sub-optimal handling in `QUnit`: this has been fixed. (`QBdt::SumSqrDiff()` has also been parallelized.)

1.0.5

More of `QBdt` has been parallelized: `Compose()`, `Decompose()`, and `Dispose()` have been made parallel, as well as `SetQuantumState()`.

1.0.4

QBdt` probability checks and measurements have been parallelized. SIMD complex variables in the recursive tree are now passed by reference, to avoid duplication. The parallel stride of `QBdt`, controlled by `QRACK_PSTRIDEPOW` environment variable or `-DPSTRIDEPOW` CMake build parameter, has been rescaled to half (rounded up) of `QEngineCPU`.

1.0.3

All three "layers" of parallelism in `QBdt` have been successfully coordinated to work together without exceeding a thread count limit of the number of available hyperthreads (plus main/UI thread).

In the process of coordinating the layers of `QBdt` parallelism, a very long-standing edge case in CPU-based parallel for loops was "fixed": if the parallel for loop would only spawn one worker thread and then wait on it, it instead performs the workload on the main/UI thread. This might improve performance and stability on edge cases of `QEngineCPU`, as well.

1.0.2

Running large-scale benchmarks overnight, `QBdt` has not caused a single segfault, which we take to indicate sufficiently improved memory safety to motivate a patch release.

1.0.1

After fixing several parallelism errors, no memory errors have been detected at all with `valgrind`, in `QBdt`. (Depending on one's system, a couple of string comparison memory errors might be present on program initialization, not rooted in Qrack user code, but this is all the developers currently detect with `valgrind`.)

We still recommend, depending on simulation method, that simulations with _maximum separable subsystem footprints_ larger than 32 qubits use at least `double` build precision, and footprints larger than 64 qubits should use `quad`. (PyQrack on PyPi only provides a 32-bit `float` build, but build from source, to tailor for your needs.)

Page 32 of 55

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.