-
Notifications
You must be signed in to change notification settings - Fork 101
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
What does it take for pyjulia to drop GIL? #535
Comments
I think we would need to reformulate the binding as a C or Rust based extension rather than using ctypes |
It seems that using CDLL rather than PyDLL will release the Gil. |
We do use CDLL for unix like systems: pyjulia/src/julia/find_libpython.py Line 83 in 69b734f
|
If I understand correctly, it’s the one for libjulia that matters. Line 220 in 69b734f
|
yeah, I think because you're calling Julia via the |
maybe it's worth getting perspective from @stevengj and @MilesCranmer ?
|
I would love to drop GIL. This would be great so that I can do other things in Python (like printing updates from another thread) while some large Julia processing is happening in the background. Regarding 3, I'm not sure what correctness issues it would cause, if any. It's unclear to me if you'd be able to mutate any Julia variables while processing is already taking place, so maybe it's safe as-is...? Maybe we should just try it out and see. |
yeah I'd like to try it, but I would prefer if we can present it as an option. In this case, it would be better if it can be a per-call site option, but a per-session option would do. One case we know definitely won't work is if Julia needs to call Python stuff as call back, or mutate Python variable, but I feel like that's minor usage |
I assume just having two libjulia handle should allow having this as a per call option with the ctypes api. |
I can't quite figure out how to have a local testable |
I guess for one I can't figure out which handle is used when I do import julia
#vs.
from julia import Base I can't get any print statement to work -- these two must share the same Julia handle right? but which one / where I can't quite figure out |
See also JuliaPy/PythonCall.jl#343 |
I think the main use case is when calling Julia code from Python, releasing the GIL would be useful. |
Numba has a nogil annotation, I'm wondering if we can somehow drop the GIL and what would that imply.
The text was updated successfully, but these errors were encountered: