Skip to content

Instantly share code, notes, and snippets.

@AP97
Last active February 26, 2017 18:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AP97/db42611a18bea1eecb936f2c51ee9ffa to your computer and use it in GitHub Desktop.
Save AP97/db42611a18bea1eecb936f2c51ee9ffa to your computer and use it in GitHub Desktop.
Submission of SpackProject

TensorFlow is a popular machine learning library, but installing it on HPC systeems is very difficult. The Bazel build systeem makes assumptions about systems that are not always true for supercomputers (compiler locations, etc.) and it fetches files from the internet, which doesn't work on airgapped networks.

Spack is a package manager designed for supercomputers. It can build optimized versions of packages with fast compilers. We decided to port the Tensorflow build to Spack. We packaged three Google packages (farmhash, highwayhash, and gemmlowp) to Spack, and we submitted pull requests for all three after verifying that they built correctly.

We also developed a prototype package for TensorFlow, which has 45 transitive depndencies. We needed to fool the Tensorflow build system into thinking that its external packages were locally installed, so that it would use the packages installed by Spack. Our TF build is currently in progress -- we were able to get through about half of the TF build and still need to resolve a few bugs. But all of the dependencies build successfully.

As mentioned, we contributed 3 PRs to the Spack project, and they've already started to be reviewed:

Our TensorFlow package is also submitted as a PR, as work in progress:

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