Support for PPC64LE in Scikit-Learn CI

### **Proposed new feature or change:**
Hi Team,

We would like to upstream support for the Power (PPC64LE) architecture in scikit-learn by adding a new CI job in wheels.yml. This will enable continuous integration (CI) support for PPC64LE using a GitHub Actions self-hosted runner.

**What We've Done So Far**

1. **Forking and Building:**
  - We forked the scikit-learn repository and successfully built and tested wheels for PPC64LE using an ephemeral self-hosted runner on an OSU Power machine.

2. **Using cibuildwheel:**
  -  We leveraged **cibuildwheel**, the same tool used for building wheels on other architectures and confirmed that it works smoothly for PPC64LE.

3. **Modifications:**
  - The key change involves adding a new job for PPC64LE in the **wheels.yml** file.
  - This ensures that scikit-learn can be built and tested automatically for Power architecture alongside other existing platforms.

**Why We're Proposing These Changes**

- Enabling CI support for PPC64LE ensures continuous testing and validation, improving compatibility and reliability for Power users.
- The self-hosted runner ensures minimal impact on existing CI/CD pipelines since it only runs when triggered.
- Other projects, such as PyTorch, have adopted a similar approach for alternative architectures like s390x

**Details of Self-Hosted Runner Setup**

- We have successfully set up an ephemeral self-hosted runner for PPC64LE on an OSU VM, following an approach similar to [s390x.](https://github.com.mcas.ms/pytorch/pytorch/blob/main/.github/scripts/s390x-ci/README.md)
- The runner remains in listening mode and can be triggered by specific workflows (e.g., trunk updates), ensuring efficient usage.

**Details of OSU and IBM Power Support**

Through a partnership between IBM and the Oregon State University (OSU) Open Source Lab (OSL), infrastructure is provided for open-source development:

- **Architecture**: Power Little-Endian (LE)
- **Virtualization**: Kernel-based Virtual Machine (KVM)
- **Access**: Secure Shell (SSH) and OpenStack API/GUI
- **Capabilities**: Supports Jenkins and integration into external CI/CD pipelines

**Alternative Approach: QEMU-Based CI**

- We also tested a **QEMU-based** approach, updating **wheels.yml** accordingly.
- Using a QEMU Ubuntu Docker setup on a GitHub runner, we successfully built the wheels.
- However, the **QEMU-based** build took approximately **6 hours**, whereas the **self-hosted runner** completes the build in just **22 minutes**, making it a significantly more efficient solution.

**Request for Feedback**

We would appreciate your feedback on:

1. Feasibility and design of the proposed changes.
2. Any modifications or requirements needed for upstreaming PPC64LE support.

We are happy to provide further details or assistance as needed. Looking forward to your thoughts!

COMMENT:
So I'm not sure how familiar you are with IBM's open source history, but IBM doesn't typically throw cash around, we invest by building groups like Linux Foundation, Apache Foundation, CNCF, we contributed nearly $1 billion dollars in investment to making Linux viable both across the board and for the Enterprise.  We invest by bringing people to communities, by ensuring that customers have a way to purchase software and solutions that use Linux and things like CNCF and Python Eco, amongst others.  It is not common for IBM to enter into individual contracts or dole out large amounts of money hoping that there will be a return on investment with someone else managing the company's money.  We invest a lot of sweat equity to make things work, in the traditional open source model - we scratch our own itches, just like pretty much everyone else.  We can't bear the burden of supporting 700,000 packages in Pypi when our enterprise customers are focused on a much smaller subset of a core of maybe 1000 packages, and possibly another 5k-10k based on niche interests on a per customer or industry basis.  We invest in distributions like Red Hat and even SuSE and Canonical in various ways to help aggregate these in a customer friendly way for those Fortune 1000 customers (and many more!) and there is a lot of core sustainability for all of those communities brought forward by that investment.  So, I'd say that your assertion that you are doing this "for free" is a bit specious - you, like us, are building on top of a community that many, many players have invested into and take advantage of.  Some have invested already much more than others; there are definitely some that are free riders on the various open source communities, parasites who consume without giving back.  I don't think I'd be one to characterize IBM and its brands that way, though, given its history in terms of building up this large, vibrant ecosystem that we all love.

Labels: Needs Triage