-
Notifications
You must be signed in to change notification settings - Fork 228
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
Switch Julia interface to PyJulia #87
Conversation
Update: instead, I will have SymbolicRegression.jl itself read stdin constantly, and if "q" is entered, it will quit and return the current set of populations and hall of fame. This works! |
conda was not being correctly initialized. Need to declare "shell: bash -l {0}" to actually get it to work!
So it seems like PySR actually speeds up with PyJulia versus the old method of launching a script. Measurements before the change:
(average 67242)
(average 96192). These measurements are very small jobs but this at least shows it doesn't drastically hurt performance, so I think we are good on that front. |
This switches the entirety of the Julia/Python interface to use PyJulia rather than a
subprocess
call to a generated script. Multithreading and distributed computing both work!This brings several advantages:
pysr( )
calls in the same python callThe disadvantage is that this will put PySR at the mercy of PyJulia and any bugs that it experiences. However, I think in the longterm this is still much better than running a script of generating code.
Installation with this new interface is now:
pip install pysr python -c 'import pysr; pysr.install()'
This will install PyCall.jl (required by PyJulia) as well as the packages defined in
SymbolicRegression.jl
.Will initially be implemented in v0.7.0a1 for a while until things stabilize.
TODO:
pysr.install()
has not been run.compiled_modules=False
? Or enfoce that the user has to get this working?