Skip to content

Releases: unitaryfund/pyqrack

Debug/optimize file_to_optimized_qiskit_circuit()

21 Feb 12:27
Compare
Choose a tag to compare

QrackSimulator.file_to_optimized_qiskit_circuit() has been debugged, with performance improvements.

File SHA256 sums:
5976080106feed58c984202ab9ec35cd7e424b26e6b519d655909841f36a1bd0 pyqrack-1.26.16-py3-none-any.whl
8defa75d9949dddc0544d4eb54020578947e5b79c74dd8aff349917bc1fa465d pyqrack-1.26.16-py3-none-linux_aarch64.whl
bf7c499e5b17d2101f2d6512c63621de39f8bbe90f6d47c5ceddb4935879374f pyqrack-1.26.16-py3-none-linux_armv7l.whl
58c50a66eb485ee1904373abde566293473be55c58319544b71e2592034316d0 pyqrack-1.26.16-py3-none-macosx_10_4_universal2.whl
9f55759a7a04bece2e6b7915094f076c3ceaa47326c067924c650c631f46517b pyqrack-1.26.16-py3-none-manylinux2014_x86_64.whl
98744434ab85a45c728c6cc481409a8a2e28b45feb851cb8f33c4f42d358a066 pyqrack-1.26.16-py3-none-manylinux_2_35_x86_64.whl
0cfb99129c1769149211e0233dbecc1a767561f4de804b5bbb7757bdd8b96341 pyqrack-1.26.16-py3-none-win_amd64.whl
0b25c73208c6dd41fc1946743cf344129832b9b076c27d6b3b8bc2988f9a9764 pyqrack-1.26.16.tar.gz

Fix QrackSimulator.file_to_optimized_qiskit_circuit()

20 Feb 20:15
Compare
Choose a tag to compare

This release includes additional fixes and improvements for QrackSimulator.file_to_optimized_qiskit_circuit().

File SHA256:
8027b4fdd565fa09ce3eff6472b41af07d4b25e078cd64955b082ae39c25017c pyqrack-1.26.13-py3-none-any.whl
3817c4d738537420017decfcb28d626b8a0cba42b904a10549e14eee616b3c72 pyqrack-1.26.13-py3-none-linux_aarch64.whl
b38c1bd2821ae46c65947d50e0f78e199c45305f889fc1b1d0532c6cdd0e63a5 pyqrack-1.26.13-py3-none-linux_armv7l.whl
a5f741860b79e53ae1cbc3d5212b0877c73bd48afc4c4a8d0ebecb5dcd6c1d33 pyqrack-1.26.13-py3-none-macosx_10_4_universal2.whl
45f39d8306b46ccb5aaf9c83fb675869d371814d1f1957b2f9352506b171153f pyqrack-1.26.13-py3-none-manylinux2014_x86_64.whl
0efb738c3e12a0ddd59766bcb2ef2127be4e2ac2b8097bfc75587ef06b1e9f82 pyqrack-1.26.13-py3-none-manylinux_2_35_x86_64.whl
e38637ad0f4847667f94acd460d67ccd872206b6cfc7342a08efb34bbd95ff00 pyqrack-1.26.13-py3-none-win_amd64.whl
fda342143d3525693e8a36eb6785958911c70946ae65d7aaeb8b95409e972a7f pyqrack-1.26.13.tar.gz

Fix QrackSimulator.file_to_optimized_qiskit_circuit()

20 Feb 15:16
Compare
Choose a tag to compare

QrackSimulator.file_to_optimized_qiskit_circuit() previously sometimes dropped gates, in the optimization process; this should no longer happen.

File SHA256 sums:
fe17a93fe73e15991924e2995ab36a502759beda91fe9849dfd0eb63e2912e3e pyqrack-1.26.11-py3-none-any.whl
2b67f4a172d00be84c84ce39f205c394c8dfe6bc7ad3acfd75073462de7fdb4b pyqrack-1.26.11-py3-none-linux_aarch64.whl
9be1d44ad78caa6d4dfce225981ca6aaba9463ea4632531d8aa6699aab7346f3 pyqrack-1.26.11-py3-none-linux_armv7l.whl
62dfafc0995d9f380fb285a2e6da58d3d14042174d7114b2c3d4eedefc07166f pyqrack-1.26.11-py3-none-macosx_10_4_universal2.whl
38b9607e97f5cb3a6a7dba7eb8d8ef4a67eb9b7d31181a200447d31bb1a7dba1 pyqrack-1.26.11-py3-none-manylinux2014_x86_64.whl
8db23fba1e6c2ac6a1d2fbe3111e7f3e94648cd3c1a5f95b077a69be24c8b319 pyqrack-1.26.11-py3-none-manylinux_2_35_x86_64.whl
866e83c71cd2dd82eed776f69f1361567f1e49d7ee4c5dd40f473be89b48cb20 pyqrack-1.26.11-py3-none-win_amd64.whl
d95369c2863c9944ed7943275d31afcc38c04250381ebc5599a4f77a803fd562 pyqrack-1.26.11.tar.gz

Bind QrackSimulator.set_ncrp()

19 Feb 21:53
Compare
Choose a tag to compare

The method set_ncrp() has been bound from the shared library interface, in QrackSimulator. This allows "near-Clifford rounding parameter" to be set by user code, without environment variables.

File SHA256 sums:
ac14dc25f7d3a39719e1f9c5108571f2ae226cae7168072f1249b77c620d4eb4 pyqrack-1.26.8-py3-none-any.whl
0cfa9d67f1d2d4716b2acfc191338999bd1d73c9e5ba8a17bef594fd46aff866 pyqrack-1.26.8-py3-none-linux_aarch64.whl
42be9773e53282017f5a57ed0fbf5a977e92c6e78d00ff284f59e111a02b2c47 pyqrack-1.26.8-py3-none-linux_armv7l.whl
69796549b8749d39a0eff5031cb8f4bc30e3460c9029d8fe6b062af1b058abde pyqrack-1.26.8-py3-none-macosx_10_4_universal2.whl
87bf3222f34efb069975d88597cd451507a6204807bddfc72abaa127d012258c pyqrack-1.26.8-py3-none-manylinux2014_x86_64.whl
3d457fbf04b6fa8d4f31697defde52237ada939bb232ec2eb371e19307838d82 pyqrack-1.26.8-py3-none-manylinux_2_35_x86_64.whl
fe9ec246bc9017df50c5cc6301faf53493b5c0153545befc227b31a5b3ece23f pyqrack-1.26.8-py3-none-win_amd64.whl
79a2071eabe9aaf01105772c0bbd69dbc390874775b06f8d82f76cb7bae3b26d pyqrack-1.26.8.tar.gz

Fix PyZX parsing

19 Feb 15:29
Compare
Choose a tag to compare

At some point, PyZX parsing stopped working. The simple reason for this what that the operation-parsing method was referenced as a global function instead of a class method. This has been fixed.

File SHA256 sums:
2107510e7facaf8707dccdc7ded04403409b68064fa512362102d4a478f7cbcb pyqrack-1.26.5-py3-none-any.whl
bcece4cd16ff8f557675f3a48ea7ebcf712779792538519087865cd801389ba4 pyqrack-1.26.5-py3-none-linux_aarch64.whl
303c4f0fb636ec9198a882f6260d0c42d11bf49bbb0987a9f99295debcc3fd84 pyqrack-1.26.5-py3-none-linux_armv7l.whl
8cbc88b6bad7b38553b4bf2e5902a828a20c78d75d8db3650e18cfb1ffce8bb1 pyqrack-1.26.5-py3-none-macosx_10_4_universal2.whl
75c536eaec6977cfe0ffd6d27bb3bee1b78538efd1f2aceecb6d0ea11b01ff1c pyqrack-1.26.5-py3-none-manylinux2014_x86_64.whl
02db007e4f1d9db154fa94a077182769c578ceb1138a03299433cc0cda354635 pyqrack-1.26.5-py3-none-manylinux_2_35_x86_64.whl
375eabb15dc4fb6d556bc1847188d204da529482c023ee875d3855406d32bde5 pyqrack-1.26.5-py3-none-win_amd64.whl
6ae65c1b93e2f34cee7c061e0c2a7ee1bb494b8de994d53b08836d6c545c781a pyqrack-1.26.5.tar.gz

Automatic homogeneous multi-accelerator

19 Feb 00:35
Compare
Choose a tag to compare

For homogeneous multi-device systems, it is usually no longer necessary to explicitly specify constructor or environment variable configuration of multi-GPU parallelism (for default optimal stack and in general, according to use case). The behavior of the existing configuration variables remains unchanged, otherwise.

File SHA256 sums:
8fe84846be387aaed5e164a0b6689f56f608f2c2e71c044bbda3cc5bc5899a33 pyqrack-1.26.0-py3-none-linux_aarch64.whl
93c9f3b5f13a41bd40f31ab99fa8d031aeb9b63313e3ca77055d64c93055bbed pyqrack-1.26.0-py3-none-linux_armv7l.whl
d15bdf46522adbb4d979794e057be3ddfe4f3ddb39bbfb09b3fc02914d3ca702 pyqrack-1.26.0-py3-none-macosx_10_4_universal2.whl
31e4d2cb45971a5a5aaf9a2d5734c8c9a64c7cfd0c3e3d34c350118b6a826e91 pyqrack-1.26.0-py3-none-manylinux2014_x86_64.whl
200a5a4940f118f122ba53df28a31d3adbf8f3c82e245732ae75d19b6aa93830 pyqrack-1.26.0-py3-none-manylinux_2_35_x86_64.whl
a852c0c2ee8f4c3feb01059b3d48e06c1c922aa552b4e617301ddf12c4c075de pyqrack-1.26.0-py3-none-win_amd64.whl
c4f754da908b866b6d7780ee85f2f47d0f99563429c139998a20a475bd03ec01 pyqrack-1.26.0.tar.gz

"Foolproof" reactive separation default

18 Feb 02:57
Compare
Choose a tag to compare

Qrack's longstanding strategy about "reactive separation" setting has been to optimize for (special case) minimum memory footprint. (We have generally and publicly advised, as in our white paper and its accompanying notebooks to exactly reproduce our reported benchmarks, that users should make a consciously-considered choice whether to override the setting for their case.) However, it is likely that most users, when they are not using SDRP, would prefer that Qrack optimizes by default for minimum execution time. As such, when SDRP is default ("ideal") value or lower, reactive separation setting now defaults to "off"; when SDRP is in use, reactive separation defaults to "on." After setting or changing SDRP value, the default behavior will re-engage, but it can then be overridden with the method to manually set reactive separation option. (This adds no new functionality versus many previous releases, but it takes the responsibility off the "lazy" user.)

File SHA256 sums:
86fb09a5872471c3df27398fe5573a7c5195109818c3c57cfd10d25d0a208507 pyqrack-1.25.2-py3-none-any.whl
597dacd50ebc141e310d9831773aa53c720774c4da63bbceeaa1d827448baf6f pyqrack-1.25.2-py3-none-linux_aarch64.whl
79d9a929c153188015eb3d1b381ce9df199ef013df0a1b99f11ab1903a1c39b6 pyqrack-1.25.2-py3-none-linux_armv7l.whl
6550b320d5e9e375bb0fce467406c86813285a53691a0fbe4ea7f4c1455c7566 pyqrack-1.25.2-py3-none-macosx_10_4_universal2.whl
71cd6d1eb77a1f7f3a4fa6eba69d08ba657a1b60d1fc9cf3623cd45e66c444a0 pyqrack-1.25.2-py3-none-manylinux2014_x86_64.whl
922a79a6fd77763013480a9cbd77a550007db0728dced9060ef1874bcc4f773a pyqrack-1.25.2-py3-none-manylinux_2_35_x86_64.whl
adb910d698fcbe14a165eb9d66b6d5e81dc5a732b0ed9f9beeb2f82051a8cec4 pyqrack-1.25.2-py3-none-win_amd64.whl
29d270fbb29ae75974a3a07c90ec7308d71992fe85d3e0d857080053946b50ef pyqrack-1.25.2.tar.gz

QBDD debugging

08 Feb 19:56
Compare
Choose a tag to compare

Besides finalizing the first release of the QrackNet API, this release fixes a minor bug in QBDD simulation.

File SHA256 sums:
0e054496befd6da8cb5962588b6a22174ed7e178a3136f1158d6b7c233b56d08 pyqrack-1.25.1-py3-none-any.whl
fd6ff2d70228b34013be1585c06ef270c5a7214bfdd53746772cf232d6fc2aa0 pyqrack-1.25.1-py3-none-linux_aarch64.whl
d37e289ead59492ec12d1e2afd905d44ebcf310e39f1f4cbd93bbc48f312d690 pyqrack-1.25.1-py3-none-linux_armv7l.whl
b92aecb2879c1cba798e6e0493302a71e1cb68d7cc29c7758172c030ee9f3b22 pyqrack-1.25.1-py3-none-macosx_10_4_universal2.whl
e30a4e24ca462994da3608766a18958ff212a5c7edc83f148612205b1fe4adb7 pyqrack-1.25.1-py3-none-manylinux2014_x86_64.whl
d03ceeb9dfd39452a6090a76f01bea2c3964affd0985b0c460f7d164b69552cc pyqrack-1.25.1-py3-none-manylinux_2_35_x86_64.whl
0ba3f868ed2e66a19186b89e4095b44221b3df0093aca2abce13ab1db0adf4ca pyqrack-1.25.1-py3-none-win_amd64.whl
81eebced1200d68113dabefaad2344f551c9b66aef8fde910d877daefee82bc8 pyqrack-1.25.1.tar.gz

"Near-Clifford rounding" fidelity calculation

10 Jan 19:25
Compare
Choose a tag to compare

QUnit already offered GetUnitaryFidelity() (or, in PyQrack, get_unitary_fidelity()) to automatically estimate overall fidelity reduction during SDRP algorithm application. Similarly, when using using Clifford+RZ gate set, QStabilizerHybrid can be instructed via QRACK_NONCLIFFORD_ROUNDING_THRESHOLD environment variable to round non-Clifford phase gates with smaller angles to "no-operation," but it wasn't immediately obvious how this should quantitatively affect overall fidelity. Now, under the assumption that non-Clifford phase gates will only be buffered at all when applied to states that are originally in maximal superposition, Qrack automatically calculates the effect on the single-qubit reduced density matrix:

fidelity *= 0.25 * norm(1.0 + phaseFac)

where phaseFac is the unit-norm phase factor of the gate "rounded away." This produces a maximum infidelity for a T gate, of 3/8 compounded infidelity. (Note that, if you're using variational RZ gates in an RCS benchmark, compounded infidelity per rounding event might typically be much less than 3/8, and it's quite possible to set the rounding parameter to maximum yet still see approximately 1.0 fidelity at the end of the circuit.)

SHA256 sums:
7912e583616677ff7b42aaaa652a646b549f1a633b2949a0618bce66a659cbad pyqrack-1.25.0-py3-none-any.whl
1f7a82afc98075029d8a2bcbceda472309884ad40f4b2f983b55928f81b35156 pyqrack-1.25.0-py3-none-linux_aarch64.whl
617cd31d26f48c377555991fa733ba9c956ac3d68bc5735f7021719fa1d19022 pyqrack-1.25.0-py3-none-linux_armv7l.whl
e93f3c1f7e3dc8a49604805a85973ef48a93dd8c0ad1aacaaf60910a1dafaae7 pyqrack-1.25.0-py3-none-macosx_10_4_universal2.whl
e3a98f69627610d4d7b52057f769e9a7d91ec2aa5b9ea5da6a684ccefd6daf22 pyqrack-1.25.0-py3-none-manylinux2014_x86_64.whl
cb135bf27c0ce9b89acf714071c8d6af835c86e102d406c91188ed7620d2f505 pyqrack-1.25.0-py3-none-manylinux_2_35_x86_64.whl
536de922583ffffde0dfb018c3d4cf99238c99c3252ceb4c866d85de519dd9b7 pyqrack-1.25.0-py3-none-win_amd64.whl
4b277afa149250ed74116df2d51aeea1b80b812d2b9f3346e0a140b3352b8083 pyqrack-1.25.0.tar.gz

Fix default layer stack

09 Jan 14:55
Compare
Choose a tag to compare

Unbeknownst to the development team, the Qrack default layer stack erroneously included QBdtHybrid. This broke the shared library interface for turning off QBdtHybrid. This has been fixed.

SHA256 sums:
28e3f7678570ab6842f4640129a5c5c209bb7f24874d51910574e8596ad5ba6f pyqrack-1.24.11-py3-none-any.whl
aa8bb83b7db1f9005b2ca704ce748f85e77c212f2330d0538d672be3dfdded8a pyqrack-1.24.11-py3-none-linux_aarch64.whl
9d204ac3777f3fdfc2c78ddac4185da71bb0dd99f047aaab5962ef5f2544ba66 pyqrack-1.24.11-py3-none-linux_armv7l.whl
c99880862a2c6808e0c961ce9e008125e2a56077ddf6d48b39b97c827f5ecb55 pyqrack-1.24.11-py3-none-macosx_10_4_universal2.whl
87aa6a1ab3b7d1584a879d7c5baf687dde0f61b069c70cfbe946bfa3027f9f6b pyqrack-1.24.11-py3-none-manylinux2014_x86_64.whl
42bb06953bc9926fa90087cfeb94273b9158c64572733f24fc4e58369a0e6c74 pyqrack-1.24.11-py3-none-manylinux_2_35_x86_64.whl
436fed0c048aaec1a14a4a4ed4d4a16ca9ccda710421171c6f3d6652d68b59f1 pyqrack-1.24.11-py3-none-win_amd64.whl
1e3f1eaa328ce578c2295fb2d32dc442f324ce32403e58c06e329f95f1957731 pyqrack-1.24.11.tar.gz