Python and scientific libraries¶
Module: languages/python/2.7.13
Module: languages/python/3.6.0
Path /shared/software/languages/python/2.7.13
Path /shared/software/languages/python/3.6.0
Date January 24, 2017
Python currently has two active versions, there are some important differences that prevent python code from running with python 3. That means that some packages are currently no python 3 ready and some of them will never be. Python 2 will stop being supported on 2020, so until that happens python 2 and 3 will coexist and that is the reason why we keep both on our cluster.
Packages included¶
* Python-2.7.13
* Python-3.6.0
Libraries included¶
We provide a comprehensive collection of scientific libraries for python:
Python 2.7 and 3.6¶
- ::
- coverage (4.3.4) cycler (0.10.0) Cython (0.25.2) dask (0.13.0) decorator (4.0.11) future (0.16.0) h5py (2.6.0) ipython (5.1.0) ipython-genutils (0.1.0) matplotlib (2.0.0) mpmath (0.19) networkx (1.11) nose (1.3.7) numpy (1.12.0) olefile (0.44) pandas (0.19.2) pexpect (4.2.1) performance (0.5.1) pickleshare (0.7.4) Pillow (4.0.0) pip (9.0.1) prompt-toolkit (1.0.9) ptyprocess (0.5.1) Pygments (2.2.0) pymongo (3.4.0) pyparsing (2.1.10) python-dateutil (2.6.0) pytz (2016.10) scikit-image (0.12.3) scikit-learn (0.18.1) scipy (0.18.1) simplegeneric (0.8.1) six (1.10.0) sympy (1.0) toolz (0.8.2) traitlets (4.3.1) virtualenv (15.1.0) wcwidth (0.1.7)
Python 2.7 only¶
- ::
- appdirs (1.4.0) backports.shutil-get-terminal-size (1.0.0) enum34 (1.1.6) functools32 (3.2.3.post2) packaging (16.8) pathlib2 (2.2.1) scandir (1.4) setuptools (34.0.2) subprocess32 (3.2.7) wheel (0.29.0)
Python 3.6 only¶
- ::
- CacheControl (0.11.7) lockfile (0.12.2) natsort (5.0.1) requests (2.13.0) scikit-bio (0.5.1) setuptools (28.8.0)
Notes from building¶
Python 2 and 3 where compiled with `sqlite` support and python 3 with `lzma`. SqLite is used by IPython to record history of commands and LZMA is a newer compression algorithm that Python 3 is linked to.
Both version were compiled with GCC 6.3.0 with Link-time optimization (LTO) and Profile-guided optimization (PGO) to maximize performance in production runs.
Compilation proceed with (similar for 6.3.0):
../configure --prefix=/shared/software/languages/python/2.7.13
make profile-opt
make install
The Makefile was modified to remove the command option
-fuse-linker-plugin
--- Makefile.orig 2017-01-24 09:52:54.597959711 -0500
+++ Makefile 2017-01-24 10:27:24.152893000 -0500
@@ -469,7 +469,7 @@
$(MAKE) profile-removal
build_all_generate_profile:
- $(MAKE) build_all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none" LIBS="$(LIBS)"
+ $(MAKE) build_all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) -flto -ffat-lto-objects -flto-partition=none" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) -flto -ffat-lto-objects -flto-partition=none" LIBS="$(LIBS)"
run_profile_task:
: # FIXME: can't run for a cross build
@@ -479,7 +479,7 @@
$(LLVM_PROF_MERGER)
build_all_use_profile:
- $(MAKE) build_all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none" LDFLAGS="$(LDFLAGS) -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none"
+ $(MAKE) build_all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) -flto -ffat-lto-objects -flto-partition=none" LDFLAGS="$(LDFLAGS) -flto -ffat-lto-objects -flto-partition=none"
# Compile and run with gcov
.PHONY=coverage coverage-lcov coverage-report
@@ -947,7 +947,7 @@
commoninstall: \
altbininstall libinstall inclinstall libainstall \
sharedinstall oldsharedinstall altmaninstall \
-
+
# Install shared libraries enabled by Setup
DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)