Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for 32bit x86 linux and windows #13650

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

mtreinish
Copy link
Member

Summary

Going into Qiskit 2.0 we decided to drop support for windows 32 bit and linux i686 platforms. Right now the maintainence burden for continuing to support these platforms is becoming increasingly high, as we're increasing writing low level rust code to improve performance where we have to limit ourselves to continue to ensure 32bit platforms work. The user base for these platforms is quite small small; in the last 150 there were only 7 downloads for i686 out of 221,992 total downloads from PyPI (there is no metadata field in PyPI's database to differentiate between windows 32bit and 64bit if the CPU is 64bit capable it uses AMD64 for the CPU field), 5 downloads where the CPU type was: "x86" (I'm not sure which platform uses that string, linux uses x86_64 for 64bit intel, but i686, i586, i486, etc for 32bit systems), and 35 downloads were armv7l which is not an official supported platform but is 32bit and you could build from source (this is typically raspberry pi users). When combining this with the lack of wider ecosystem support for 32bit platforms, numpy, scipy, etc all have dropped 32bit support already, keeping support for 32bit platforms is no longer tenable. This commit updates the wheel building configuration to drop the 32bit platform builds and adds a release note documenting the change in status for these platforms in 2.0.

A separate Qiskit/documentation PR will be opened to update our platform support documentation here:

https://docs.quantum.ibm.com/guides/install-qiskit#operating-system-support

closer to the final 2.0 release to remove the 32bit platforms from the list. Although we likely should update that page to have a subsection for 2.x and 1.x while both are supported.

Details and comments

Going into Qiskit 2.0 we decided to drop support for windows 32 bit and
linux i686 platforms. Right now the maintainence burden for continuing
to support these platforms is becoming increasingly high, as we're
increasing writing low level rust code to improve performance where we
have to limit ourselves to continue to ensure 32bit platforms work. The
user base for these platforms is quite small small; in the last 150 there
were only 7 downloads for i686 out of 221,992 total downloads from PyPI
(there is no metadata field in PyPI's database to differentiate between
windows 32bit and 64bit if the CPU is 64bit capable it uses AMD64 for
the CPU field), 5 downloads where the CPU type was: "x86" (I'm not sure
which platform uses that string, linux uses x86_64 for 64bit intel, but
i686, i586, i486, etc for 32bit systems), and 35 downloads were armv7l
which is not an official supported platform but is 32bit and you could
build from source (this is typically raspberry pi users). When combining
this with the lack of wider ecosystem support for 32bit platforms,
numpy, scipy, etc all have dropped 32bit support already, keeping support
for 32bit platforms is no longer tenable. This commit updates the
wheel building configuration to drop the 32bit platform builds and adds
a release note documenting the change in status for these platforms in
2.0.

A separate Qiskit/documentation PR will be opened to update our platform
support documentation here:

https://docs.quantum.ibm.com/guides/install-qiskit#operating-system-support

closer to the final 2.0 release to remove the 32bit platforms from the
list. Although we likely should update that page to have a subsection
for 2.x and 1.x while both are supported.
@mtreinish mtreinish added documentation Something is not clear or an error documentation Changelog: Removal Include in the Removed section of the changelog ci: test wheels Run the wheel-build scripts as an additional CI run for this PR labels Jan 10, 2025
@mtreinish mtreinish added this to the 2.0.0 milestone Jan 10, 2025
@mtreinish mtreinish requested a review from a team as a code owner January 10, 2025 13:58
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

  • @Qiskit/terra-core

Copy link
Member

@jakelishman jakelishman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll be happy to see the back of the 32-bit platforms now; it's rather easier to reason about when everything's the same, especially since there's ever more places where we're getting very concerned about the exact alignments, padding bits, and whatnot implicit in pointers.

releasenotes/notes/64-bit-only-4132f330ec7804b3.yaml Outdated Show resolved Hide resolved
@coveralls
Copy link

coveralls commented Jan 10, 2025

Pull Request Test Coverage Report for Build 12712142919

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 11 unchanged lines in 3 files lost coverage.
  • Overall coverage decreased (-0.3%) to 88.658%

Files with Coverage Reduction New Missed Lines %
crates/accelerate/src/unitary_synthesis.rs 1 93.18%
crates/qasm2/src/lex.rs 4 91.98%
crates/qasm2/src/parse.rs 6 97.62%
Totals Coverage Status
Change from base Build 12710188694: -0.3%
Covered Lines: 65205
Relevant Lines: 73547

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Removal Include in the Removed section of the changelog ci: test wheels Run the wheel-build scripts as an additional CI run for this PR documentation Something is not clear or an error documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants