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 versions or toolchains.
- these use the latest CPU capibilities for the system(s) they were built on. These include Intel's Advanced Vector Extensions (AVX).
- these are compatible with all other Python modules on the system built using the same toolchain and the same version of Python
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. More information can be found at Intel's Python distribution page. 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.
Least optimized, provided by Anaconda
Anaconda(2/3) modules that were built elsewhere but include a number of precompiled Python libraries. More information on using prebuilt virtual environments can be found on our Anaconda page. Note that these do not include optimizations from Intel. Also note these can NOT be used with other Python modules on the system.
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 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 SW: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.
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.