-
Notifications
You must be signed in to change notification settings - Fork 717
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
Example of Python-core at GCCcore/7.3.0 with Python at intel/2018b #6537
Example of Python-core at GCCcore/7.3.0 with Python at intel/2018b #6537
Conversation
…5-intel-2018b.eb, SQLite-3.24.0-GCCcore-7.3.0.eb, GMP-6.1.2-GCCcore-7.3.0.eb, libreadline-7.0-GCCcore-7.3.0.eb
d4c331c
to
5b59b1b
Compare
@boegel Rebase done. I'll see if I can figure out why pandas didn't build for me. |
@Micket Seems like you need the latest |
Ah, wait, this is Python 2.7.15, so that pandas update may not help you. What kind of build issue did you run into? |
@boegel It seems that when building the pandas package,
|
@boegel So, I found a fix by setting export LDSHARED="icc -shared" into prebuildopts. Not ideal, as this would then be required to be added for every other pythonpackage-easyconfig compiled with icc, but still a small tradeoff for the benefits of a Python-core I.M.H.O. I'm not sure how the default value gets set;
but it might also be possible that another fix is to keep setuptools (and Cython) at the intel/foss level (unless this is actually set when compiling Python). I think setting LDSHARED in EB_PythonPackage is a reasonable approach. |
Tested easybuilders/easybuild-easyblocks#1455 so if that is accepted, we can drop the prebuildopts in these configs. |
Attempting to redo this for Python 3 (for our local installation), I got hit with a limitation in PythonPackage, which looks for the interpreter via python_root = get_software_root('Python') and, since the package was now called Python-core, this fails. While for Python-core-2.7.* this happens to work out anyway, it's probably prudent to have the PythonPackage block look for |
@Micket I agree. I think it makes sense to check where the |
This PR has outlived it's usefulness (and this approach isn't that good) |
I created this PR by modifying #6479 to exemplify how I think we should split Python-core and Python. I have built this, and it does work great. There was a single numpy test that failed, though, the build was accepted anyway (perhaps it's know to fail?). There definitely doesn't seem to be anything to to worry about having a libpython+interpreter built with gcc and a numpy/scipy build with icc.
Mesa, Tkinter, PyGTK, PyQt, Tk, Swig, etc. etc. etc.
So this means a lot less work maintaining easyconfigs, a lot less stuff to (re-)compile, and vastly larger module availability in less popular toolchains,
I'm not really very concerned how the configs are implemented. We can have numpy/scipy/pandas as a standalone config, doesn't matter. But I can't see any reason why at least the interpreter and libpython wouldn't exclusively be built at GCCcore.
I fail to see any downside to this. If there is a critical piece of information I have managed to neglect, please let me know.