Hprc banner tamu.png

SW:Python Implementations

From TAMU HPRC
Revision as of 12:14, 13 April 2018 by J-perdue (talk | contribs) (Python)
Jump to: navigation, search

Implementations

At present, we have three "flavors"/implementations of Python.

Most optimized, locally built

Python modules that were built from source on our systems. These will be named Python/<version>-<toolchain>. For example Python/2.7.14-intel-2017b can be used with modules with intel-2017b-Python-2.7.14 in their name. Be sure not to mix Python versions or toolchains.

Intel optimized, provided by Intel

Two Python modules (Python/2.7.12-2017.0.035 and Python/3.5.2-2017.0.035) built by Intel that include a number of Python libraries, all compiled with Intel optimizations. These include Anaconda and a number of other utiliies (e.g. Jupyter). More information can be found at Intel's Python distribution page.

  • These were built Intel using Intel compilers but do not necessarily include optimizations for the current generation of HPC CPUs. What level of features like AVX is supported varies upon version (see Note: below).
  • These can NOT be used with other Python modules on the system.

Note: At present the plan is to update them to the most recent version and rename them to IntelPython to avoid confusion.

Anaconda

Anaconda(2/3) modules that were built elsewhere but include a number of precompiled Python libraries. More information on using Anaconda virtual environments can be found on our Anaconda page.

  • These were not built by Intel compilers. Furthermore, they are only optimized for older architectures. They will not take advantages of modern HPC CPU features like AVX.
  • These can not be used with other Python modules on the system.
  • Note that we have two variations of Anaconda currently installed.
    • Anaconda/<python-version-major>-<anaconda-release> (e.g. Anaconda/3-5.0.0.1) provides an Anaconda environment that has been updated for use on HPRC clusters. For details on using them, see our Anaconda page.
    • Anaconda<python-version-major>/<anaconda-release> (e.g. Anaconda3/5.0.0.1) provides a pristine Anaconda with no alterations for compatibility with Anaconda environments on other systems. To see how they can be used to simplify Python and Anaconda virtual environments, see our "my" wrappers for Python and Anaconda

Selecting which to use

User's wanting to use Python with other applications on the system that were built with Python (they will have Python in the version), should use the Python that matches their application. This generally precludes/excludes the use of Anaconda or the Intel Python modules

User's only wanting to use Python in isolation or with just Python modules, might find the Anaconda versions easier to use. (see our Anaconda page)

User's wanting an Intel-optimized Python might want to use the Intel provided versions. Note, however, that HPRC staff has limited experience with these versions.

Python libraries

Prebuilt

For the first Python above, there are a number of tools/libraries already built to support applications that needed them. You can use the module command to search for those available. NOTE: Be sure to match Python versions.... e.g. don't try to mix Python-2.7.10 modules with Python-2.7.12 or Python-3.5.3. For more details, see our Toolchains page.

For Anaconda and the Intel Pythons, there are a number of libraries already included. Others can be installed with the "conda" command into a "virtual environment". See the Anaconda page for more details.