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

Python hyperqueue package for ARM #726

Open
theely opened this issue Jul 16, 2024 · 8 comments
Open

Python hyperqueue package for ARM #726

theely opened this issue Jul 16, 2024 · 8 comments

Comments

@theely
Copy link

theely commented Jul 16, 2024

Hi there,
Would it be possible to release the hyperqueue API client also for the ARM architecture?
Or alternatively, I am open to suggestions on how to enable the development that makes use of your API client on Apple silicon.

Cheers,
Elia

@Kobzol
Copy link
Collaborator

Kobzol commented Jul 16, 2024

Hi, just to clarify, you are looking for precompiled HyperQueue Python API package that would work on ARM (Apple Silicon)?

@theely
Copy link
Author

theely commented Jul 16, 2024 via email

@Kobzol
Copy link
Collaborator

Kobzol commented Jul 16, 2024

I see. So, currently we offer pre-built binary HyperQueue packages for x64, PowerPC64 and ARM64 Linux, and a pre-built Python HyperQueue package for x64 Linux.

We could in theory expand the number of packages that we offer, but a larger issue is that HyperQueue doesn't really support macOS (you can find more information here: #688). While it can be currently compiled for it, we do not offer any support for it, and some functionality will simply not work on other operating systems than Linux, at the moment.

Since macOS is not supported, and the Python API itself is still very experimental, we probably will not support prebuilt macOS Python packages anytime soon. I'm not even sure how can we build such packages, but if you investigate and find some solution, I'd be glad if you can post it here.

@spirali
Copy link
Collaborator

spirali commented Jul 16, 2024

I see. So, currently we offer pre-built binary HyperQueue packages for x64, PowerPC64 and ARM64 Linux, and a pre-built Python HyperQueue package for x64 Linux.

We could in theory expand the number of packages that we offer, but a larger issue is that HyperQueue doesn't really support macOS (you can find more information here: #688). While it can be currently compiled for it, we do not offer any support for it, and some functionality will simply not work on other operating systems than Linux, at the moment.

Since macOS is not supported, and the Python API itself is still very experimental, we probably will not support prebuilt macOS Python packages anytime soon. I'm not even sure how can we build such packages, but if you investigate and find some solution, I'd be glad if you can post it here.

On the other hand, our problems with MacOS is mostly on the worker side. So theoretically it should not be not that hard to support MacOS client. However, I am no volunteering to do it :)

@theely
Copy link
Author

theely commented Jul 16, 2024

Thanks for the fast responses.
I followed your advice and built my own binary. I was able to compile the Python package on MacOS with no issues.
If it helps, I am happy to share the binary (hyperqueue-0.19.0-cp36-abi3-macosx_11_0_arm64.whl)?

@Kobzol
Copy link
Collaborator

Kobzol commented Jul 16, 2024

I'm glad that it worked for you! Providing a single wheel is not enough to make this robust for us, though. We'd need a way to produce the wheels on our CI, using maturin. This is the CI job that builds our Linux Python package. It would probably need to run in a macOS container so that it could generate a macOS ARM Python wheel.

@theely
Copy link
Author

theely commented Jul 16, 2024

I used maturin. Everything worked out of the box (no custom changes needed).
Github does provide macOS arm images: https://github.com/actions/runner-images?tab=readme-ov-file#available-images

@Kobzol
Copy link
Collaborator

Kobzol commented Jul 16, 2024

Okay, if maturin supports it out of the box, then it shouldn't be that hard. I don't have bandwidth to work on this right now, but I'd happy to review a PR :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants