Skip to content

Releases: unitaryfund/qrack

Better sampling; OutProbs()

05 Oct 15:54
Compare
Choose a tag to compare

Multi-shot measurement in QEngine was previously handled in a way that was technically not thread-safe for C++. This has been fixed, and QEngine sampling has been parallelized further.

The OutProbs() method has been added to the shared library extern C API, which returns the L2 norm of each OutKet() amplitude in same order.

Full Changelog: vm6502q.v9.9.62...vm6502q.v9.10.0

sha1sum results:
682bb0a67d824e9fda5087830eeed1b05ca235c0 libqrack-macosx_14_0_arm64.zip
f4fb8a9365a50d8a45ce74ea4587a14f443d70df libqrack-macosx_15_0_arm64.zip
e90b4a5156ea56f7870c01bec0aba1ff08009b2e libqrack-manylinux2014_x86_64.zip
dd585ec49c30e41824dd280325dacee931c8fb2c libqrack-manylinux_2_35_x86_64.zip
ca026cd4465a1dfd0c50a3d6df2bd961d993df2e libqrack-manylinux_2_39_x86_64.zip
32ef042ae5d5f61c914ba7ee55ff099149b62c85 libqrack-win-amd64.zip

Debug QBDD high rounding

04 Oct 10:48
Compare
Choose a tag to compare

If QRACK_QBDT_SEPARABILITY_THRESHOLD were set too high, it would previously lead to segmentation faults. This release should allow the rounding parameter to be set almost arbitrarily high.

Full Changelog: vm6502q.v9.9.58...vm6502q.v9.9.62

sha1sum results:
5f00f43db80fb218e08b32655b628dcdbea90423 libqrack-macosx_14_0_arm64.zip
b7a72c195e53bb6aeb16df07664d59f2380bb72a libqrack-manylinux2014_x86_64.zip
fa4cb90197c7f8acf689ace6ce689742e1ecb81d libqrack-manylinux_2_35_x86_64.zip
ed3c0dd7a609549f78fc617007247ff36dffa5ae libqrack-manylinux_2_39_x86_64.zip
05f5b863349557ec517eb0692a30da67caae9e54 libqrack-win-amd64.zip

Debug QBDD sampling

29 Sep 16:23
Compare
Choose a tag to compare

This release fixes doubling-up of QBDD measurement sampling.

Full Changelog: vm6502q.v9.9.54...vm6502q.v9.9.58

sha1sum results:
48e945330d390dfe13e6d9669ddcb415d96b098c libqrack-macosx_14_0_arm64.zip
be690a24d3be4779ea47c3b4147485300a817cb7 libqrack-manylinux2014_x86_64.zip
90a75523a351e0650d9368bf946933db856e2e40 libqrack-manylinux_2_35_x86_64.zip
a65404040e0b04077964c4ff64471bb7280e00e8 libqrack-manylinux_2_39_x86_64.zip
197fc449ce7f34f5511bbbc1480110c13ee0e49d libqrack-win-amd64.zip

QBDD optimization

29 Sep 14:57
Compare
Choose a tag to compare

A number of improvements have been made in QBDD simulation:

  • PushStateVector() has more consistent flooring logic for very small contributions to overall state vector probability.
  • Because QBDD gains little advantage from internal parallelism in most cases, internal parallelism in QBDD now defaults to OFF.
  • If QBDD internal parallelism is off, then QTensorNetwork automatically parallelizes QBDD measurement sampling over shots

Full Changelog: vm6502q.v9.9.50...vm6502q.v9.9.54

sha1sum results:
10bea70febb145a1cd4adab85503d850ae40a116 libqrack-macosx_14_0_arm64.zip
0cd78e6a21e4ba5d071f74b543b596ed3d149b12 libqrack-manylinux2014_x86_64.zip
21bf6174e08864b569038dda52439d9a38db1ae9 libqrack-manylinux_2_35_x86_64.zip
6ddecb25a28ffef7ef865e15886544db063331a6 libqrack-manylinux_2_39_x86_64.zip
8ee9c3597d4428b48d5d21ad85fd6724fee8897a libqrack-win-amd64.zip

Edge case segfault with 0 OpenCL/CUDA devices

26 Sep 15:40
Compare
Choose a tag to compare

This release fixes an edge case that leads to a segmentation fault, when QTensorNetwork is used in the presence of 0 available OpenCL/CUDA devices.

Full Changelog: vm6502q.v9.9.42...vm6502qv9.9.46

sha1sum results:
735297a892fb18177266d0133b904d3a522ba437 libqrack-macosx_14_0_arm64.zip
06c5149dbc4016b82a46cf2d9cfe6a40e30963a1 libqrack-manylinux2014_x86_64.zip
86ec787ff73d182556db6a41a30b6e5580d264f1 libqrack-manylinux_2_35_x86_64.zip
50ae58c200cae3cc90f48f04d4b8d762e4df64db libqrack-manylinux_2_39_x86_64.zip
576d4f1b86eb7fe7c126580987409e6fedcb0c16 libqrack-win-amd64.zip

0-GPU edge case; env. vars.; precision

26 Sep 19:28
Compare
Choose a tag to compare

This release fixes the following:

  • an edge case that leads to a segmentation fault when QStabilizerHybrid is used in the presence of 0 available OpenCL/CUDA devices,
  • potentially inconsistent defaults for qubit-limit and rounding-parameter environment variables,
  • and rounding neighborhood for separability checks,if we check a two-state qubit for eigenstate norm equality: "machine epsilon" in C++ is the difference between 1.0 and the next greater representable number; half this value is the difference between 1.0 and the next lower representable number; half this value is used for (L2-norm) rounding neighborhood for equality with 1.0 or 0.0 in two-state Hilbert spaces (which are bounded to that range and must normalize to 1.0).

Full Changelog: vm6502qv9.9.46...vm6502q.v9.9.50

sha1sum results:
637662ad75c87b0f7421a59b7d9ed243dc8b070d libqrack-macosx_14_0_arm64.zip
e1850904a061b54e6fe48e1ceb4767d3ef1e5da3 libqrack-manylinux2014_x86_64.zip
8f3d0c1f8413692c545da3a3511a71b05724bcf1 libqrack-manylinux_2_35_x86_64.zip
e98f9d6934f1aa59b82d0f2a3cfbedaac9d03d7b libqrack-manylinux_2_39_x86_64.zip
04829a7e58d75f1b03a2333c0cc23205e100817c libqrack-win-amd64.zip

QBDD deadlock fix (and style)

23 Sep 11:48
Compare
Choose a tag to compare

A potential deadlock in QBDD Kronecker products has been fixed. Beyond that, several (non-breaking) function prototype changes have been made in accordance with standards for style.

Full Changelog: vm6502q.v9.9.37...vm6502q.v9.9.42

sha1sum results:
fe5530fe1581d0d8635a114aeee95215ec071a15 libqrack-macosx_14_0_arm64.zip
1ca012b7f93d388b410df9236591980e0d6047cc libqrack-manylinux2014_x86_64.zip
33a39357b7178d5c1ac76600c773ca7f7cb94182 libqrack-manylinux_2_35_x86_64.zip
c83058b526072ef5f7bf3f343bfb5031c4034118 libqrack-manylinux_2_39_x86_64.zip
ad64a4fa2565fbbe9e4ff3fd82dc9eb31b5f30ce libqrack-win-amd64.zip

QBDD and stabilizer optimization

08 Sep 19:25
Compare
Choose a tag to compare

QBDD and stabilizer methods have been optimized. An incorrect initialization of a default QEngine property was also fixed in the default constructor (though the incorrect initialization likely had no consequence). Thanks to @eltociear, for fixing a documentation typo.

What's Changed

New Contributors

Full Changelog: vm6502q.v9.9.33...vm6502q.v9.9.37

sha1sum results:
0414c5f161399be0ab1ddeaacc6db63c251e27d8 libqrack-macosx_14_0_arm64.zip
6abd0137b202d83a606dd1231e599c803a273ede libqrack-manylinux2014_x86_64.zip
b11b75ea442dcbf93215b1b674c1c121d7222e93 libqrack-manylinux_2_35_x86_64.zip
5dcf2c19b0cd52d189ae370c372f95ff8b7b703d libqrack-manylinux_2_39_x86_64.zip
aea03051ff888f9c7ef5f553f89b91e971113e25 libqrack-win-amd64.zip

QBdt and BigInteger debugging and performance

04 Sep 15:13
Compare
Choose a tag to compare

QBdt and BigInteger (alias bitCapInt) have been debugged. Additionally, one should see drastically improved performance with QBdt (despite significantly reduced parallelism utilization). Systemically, on GNU/Linux, the bitCapInt type now uses 128-bit "words" rather than 64-bit words, which should lead to some performance improvement.

Note that previous releases were almost universally built with capacity for 4095 qubits in a single simulator instance; in practicality, little besides stabilizer simulation can take advantage of the vast majority of this addressing capacity. This release limits to 127 qubits in a single simulator instance, but this is a "feasible" width for Qrack approximation techniques, and performance benefits from the change.

Full Changelog: vm6502q.v9.9.28...vm6502q.v9.9.33

sha1sum results:
9ba920d97dad5f875eddcd6173b24fd1fcda0753 libqrack-macosx_14_0_arm64.zip
6998bd6e194453e572c72b79b523205d3c9869fa libqrack-manylinux2014_x86_64.zip
eb71b04fb850d2e0a7e711a2b323ed1785cdf8b2 libqrack-manylinux_2_35_x86_64.zip
cb62ec1a7ad04aa2872651043e1982e52c46a2d1 libqrack-manylinux_2_39_x86_64.zip
8253231acf756d7a129cdb1a751bc76881a61238 libqrack-win-amd64.zip

Stable maintenance release (debugging and style)

30 Aug 18:43
Compare
Choose a tag to compare

The past couple of months have seen almost exclusively style and debugging changes in Qrack. (We experimented with fixed-point math for certain applications, but it was only suitable on GNU/Linux, and the experiments mostly proved we are better leaving out fixed-point for now.) This release compared the current head of main branch to the state of Qrack about 2 months ago and whittled down the diff to a small and trustworthy set of bug fixes and adjustments according to style guide.

This release might constitute a relatively "complete" state of the core Qrack project, for a significant amount of time into the future. (Most future development is likely to focus on building out support for other quantum software frameworks.)

Happy Qracking! You rock!

Full Changelog: vm6502q.v9.9.23...vm6502q.v9.9.28

sha1sum results:
e42ac6f6fa8a0d712042ecbaa4ca4b4df56eafda libqrack-macosx_14_0_arm64.zip
9e5b96c8e068a64f7f95ac95c5e283f3872540d7 libqrack-manylinux2014_x86_64.zip
42a43af1ff62abe74a7d00be19db824a21340420 libqrack-manylinux_2_35_x86_64.zip
500654128cc5bd396b0abb7ab8b3e4f95e6af341 libqrack-manylinux_2_39_x86_64.zip
053856d53648ff3c03e611608831296eba783a4c libqrack-win-amd64.zip