Skip to content
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

Use of --ignore-installed in TensorFlow's step_install #1536

Closed
agijsberts opened this issue Oct 1, 2018 · 4 comments
Closed

Use of --ignore-installed in TensorFlow's step_install #1536

agijsberts opened this issue Oct 1, 2018 · 4 comments
Milestone

Comments

@agijsberts
Copy link

agijsberts commented Oct 1, 2018

TensorFlow's EasyBlock installs the produced wheel package via
pip install --ignore-installed

cmd = "pip install --ignore-installed --prefix=%s %s" % (self.installdir, whl_paths[0])

As a consequence, it pulls in binary wheels of all dependencies, including for example NumPy. So loading the TensorFlow module will replace the NumPy as part of the Python package (linked against MKL in my case) with a precompiled NumPy linked against a pre-shipped OpenBLAS. Is this intended behavior?

At least on our systems, removing --ignore-installed leads to desired behavior, i.e. pip does not install those dependencies that were already satisfied via dependent modules.

@boegel boegel added this to the 3.7.1 milestone Oct 1, 2018
@boegel
Copy link
Member

boegel commented Oct 1, 2018

@agijsberts That's by no means intended, we overlooked this completely... Thanks a lot for reporting this!

The --ignore-installed was added in the original implementation of the TensorFlow easyblock to try and ensure the specified *.whl is installed, cfr. #1287 .

We probably also need to use --no-deps to avoid that pip pulls in all dependencies, there should be no need for that, everything should be in place already (and if not, that should be fixed).

cc @akesandgren

@agijsberts
Copy link
Author

Thank you for confirming my suspicion.

Mind that the pip command does pull in tensorboard, which is obviously an important dependency. I guess you mean that tensorboard (and maybe a couple of other libraries) should be pulled in via the extensions mechanism (exts_list)?

@boegel
Copy link
Member

boegel commented Oct 1, 2018

@agijsberts Indeed, we'll need to fix this in the existing TensorFlow easyconfigs, but that should be just a matter of including everything that is needed via exts_list, indeed...

@boegel
Copy link
Member

boegel commented Oct 7, 2018

Fixed in #1537, where --no-deps is used if extensions are included in the TensorFlow easyconfig file (i.e. if exts_list is not empty).

See also updated easyconfigs for TensorFlow 1.10.x in easybuilders/easybuild-easyconfigs#6940

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants