-
Notifications
You must be signed in to change notification settings - Fork 2
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
Error when running buttery-eel on macOS #36
Comments
Oh interesting! Thanks for reporting this, i'll see what I can do about it. |
Hey @kisarur could you try this again with a new branch I just pushed called switch to this branch, modify the requirements.txt again, then do a Then try running it. (I don't have macOS to test myself, sorry) The fix I'm trying here, is instead of using Apparently that is implemented for MacOS. The issue here, is related to Basically, semlock is bugged or something for MacOS, so can't call qsize on the queue. Let me know how you go with this version. If it works, I'll make this the default for all systems. Cheers, |
@Psy-Fer I heard a rumour that it is working on Mac. Do you think this will affect the stability/compatibility on architectures and O/S in which buttery-eel is well tested? |
Hey @Psy-Fer, thanks for working on this fix! I tried the new branch with the fix and it worked perfectly on my mac. BTW, you could consider @hasindu2008's opinion to see if you should make this the default. Cheers! |
BTW, according to this Python doc, the value returned by |
Ahh good news. Yea while it is approximate, I am dealing in batches, so the queue is not really that high a number, and there are not a lot of transactions happening to lend to it being inaccurate. Using this fix shouldn't really impact much but of course I could just wrap this code in an OS detection method we built for interARTIC, as the code change is rather simple. Thoughts @hasindu2008? |
Looking at your code, the use of queue size is a heuristic to prevent memory blowing up and thus the exact accuracy of the queue size does not matter. Not sure if this article is right, but seems like manager.queue may impact performance which is quite important to us especially that we pass terabytes of data over a large run. So i am more inclined for that os dependent approach if it is not too hard and doesn't add non standard dependencies https://www.geeksforgeeks.org/python-multiprocessing-queue-vs-multiprocessing-manager-queue/ |
Alright i'm doing this now in the new version if platform.system() == "Darwin":
im = mp.Manager()
rm = mp.Manager()
input_queue = im.JoinableQueue()
result_queue = rm.JoinableQueue()
else:
input_queue = mp.JoinableQueue()
result_queue = mp.JoinableQueue()
```
That should detect macOS and then use Manager. A bit slower, but it will work at least. |
This should now be resolved with cheers |
I could successfully setup buttery-eel on my MacBook Air, which has the Apple M2 chip and is running macOS Sonoma version 14.1.1. Below are the commands I used for the setup:
I tried running buttery-eel with a sample dataset using the command below:
BTW, when running above command, I'm getting the following error related to multiprocessing on macOS:
Thanks!
The text was updated successfully, but these errors were encountered: