JuliaPy / pyjulia

python interface to julia
MIT License
886 stars 103 forks source link

Kill existing Julia session #536

Open ma-sadeghi opened 1 year ago

ma-sadeghi commented 1 year ago

Is there a method for terminating an existing Julia session? I'm working with multiprocessing to run a Julia function in parallel, and Julia initialization must happen inside the function passed to multiprocessing.Pool. Everything is working well so far, but I'm looking to handle the situation where a user might already have initialized Julia in the calling script. Any suggestions or insights on how to accomplish this would be greatly appreciated. Thank you!

mkitti commented 1 year ago

Well we would want to interrupt Julia and then call the at exit hook before ending the process:

https://docs.julialang.org/en/v1/manual/embedding/

ma-sadeghi commented 1 year ago

Is this something that you might consider adding to pyjulia? Thanks!

mkitti commented 1 year ago

Frankly, https://pypi.org/project/juliacall/ is under much more active development at the moment.

You can find the corresponding Github repository here: https://github.com/JuliaPy/PythonCall.jl

ma-sadeghi commented 1 year ago

Apologies if I'm misunderstanding, but are you suggesting that I should possibly be using juliacall instead of pyjulia?

mkitti commented 1 year ago

Yes. You're asking for a new feature, and our capacity to work on new features for pyjulia are a bit limited at the moment.

Also have you considered doing the parallelization on the Julia side? You could use the Distributed model as described in https://docs.julialang.org/en/v1/manual/distributed-computing/

If you are doing parallelization all on a local computer, then you might want to consider multithreading rather than multiprocessing.