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:
xref: https://github.com/numpy/numpy/issues/22318#issuecomment-3642955562

@gerrith3 very good that you mention those numbers and the kinds of customers who care about it.

This precisely means for our "usual users", who almost certainly don't work in those fortune 500 companies, this issue is irrelevant.

It also means in this issue we're talking about a request coming from customers with a very large amount of cash at hand.

Combining those two, I'm more convinced than before that it doesn't make sense for us to do this for free. We're very happy to help you out with a contractual relationship which would help both parties.

Otherwise, even if numpy and scipy release those wheels, I'm not sure if we should as well, just because they did.

Labels: Needs Triage