HPC/Applications/python: Difference between revisions

From CNM Wiki
Jump to navigation Jump to search
mNo edit summary
Line 16: Line 16:
: Such a module normally does not need to be loaded. It is included here for visibility in the module system, and as a prerequisite for (usually older) modules which provide Python packages outside of Conda or Pip. Such packages are usually tied to the version of the Python interpreter under which they were installed.
: Such a module normally does not need to be loaded. It is included here for visibility in the module system, and as a prerequisite for (usually older) modules which provide Python packages outside of Conda or Pip. Such packages are usually tied to the version of the Python interpreter under which they were installed.


== Conda-based Python suites ==
== Python software suites ==
; Module nomenclature:
Within recent years, entire Python software suites became popular,
: <code>'''python-''distributor'''''/''pyMajor.pyMinor''/''distMajor''/''distributor_defined_version[…]-moduleBuild''</code>
usually based on the [https://en.wikipedia.org/wiki/Conda_(package_manager) Conda package manager].
; Contains:
:* Wide-ranging Python-based software suites with intregrated package management. '''package selection as distributed by the vendor.'''
 
 
The suites typically contain:
The suites typically contain:
* A Python interpreter as a base.
* A Python interpreter.
* The conda/pip package management systems.
* The conda/pip package management systems.
* A rich set of Python-native packages, extensions, and add-on executables, often including
* A wide-ranging set of Python-native packages, extensions, and add-on executables, often including:
** Idle – Python Integrated DeveLopment Environment
** Idle – Python Integrated DeveLopment Environment
** iPython and juPyter – Interactive computation system
** iPython and juPyter – Interactive computation system
Line 44: Line 40:
</div>
</div>


== Custom Conda environments ==
=== Vendor-distributed suites ===
; Module nomenclature:
: <code>'''python-''distributor'''''/''pyMajor.pyMinor''/''distMajor''/''distributor_defined_version[…]-moduleBuild''</code>
; Contains:
:* Python software suite with the '''package selection as distributed by the vendor.'''
 
=== Suites with customized package selection ===
<!-- == Custom Conda environments == -->
; Module nomenclature:
; Module nomenclature:
: <code>'''python-env-''distributor'''''/''pyMajor.pyMinor''/''distMajor''/''pyVersion[…]-moduleBuild''</code>
: <code>'''python-env-''distributor'''''/''pyMajor.pyMinor''/''distMajor''/''pyVersion[…]-moduleBuild''</code>
Line 54: Line 57:
-->
-->
; Contains:
; Contains:
:* Conda "environments", as derived from a vendor-distributed Conda suite, but with the '''package selection customized for Carbon.'''
:* Python software suite with the '''package selection customized for Carbon.'''
:: This is usually implemented as a [https://conda.io/docs/user-guide/tasks/manage-environments.html Conda "environment"] derived from a vendor-distributed Conda suite.

Revision as of 17:14, January 10, 2018

Python variants

Interpreter-only releases from the Python Software Foundation

Module nomenclature
python/pyMajor.pyMinor/compilerName-compMajor.compMinor/pyMajor.pyMinor.pyPatch-moduleBuild
Contains
  • The Python interpreter only, from the python.org sources.

Python interpreters and packages as bundled with the OS

Module nomenclature
python-osname/pyMajor.pyMinor/compilerName-compMajor.compMinor/pyMajor.pyMinor.pyPatch
Contains
  • The Python interpreter that comes with the operating system, which is required for many system internals and for system-provided add-on packages (installed via rpm or yum).
Notes
Such a module normally does not need to be loaded. It is included here for visibility in the module system, and as a prerequisite for (usually older) modules which provide Python packages outside of Conda or Pip. Such packages are usually tied to the version of the Python interpreter under which they were installed.

Python software suites

Within recent years, entire Python software suites became popular, usually based on the Conda package manager. The suites typically contain:

  • A Python interpreter.
  • The conda/pip package management systems.
  • A wide-ranging set of Python-native packages, extensions, and add-on executables, often including:
    • Idle – Python Integrated DeveLopment Environment
    • iPython and juPyter – Interactive computation system
    • Cython – Compiler for a superset of Python and C/C++
  • Underlying libraries and supporting binaries, e.g.:
    • Tcl – Interpreter for the Tool Command Language
    • BLAS/LAPACK – Linear algebra libraries
    • MPI – Runtime environment for parallel applications using Message Passing Interface, providing the mpirun or mpiexec commands, plus related binaries and libraries.


Caveat: An MPI Runtime within a Python suite makes parallel computing easily accessible under Python, but this means a "mere python module" can clash with other MPI implementations used on Carbon.

Avoid loading modules at the same time for both an MPI implementation and a Python suite, especially in your dot-files. Doing so may lead to non-obvious failures with either the bundled parallel Python applications or (worse) unrelated compiled applications on Carbon.

Vendor-distributed suites

Module nomenclature
python-distributor/pyMajor.pyMinor/distMajor/distributor_defined_version[…]-moduleBuild
Contains
  • Python software suite with the package selection as distributed by the vendor.

Suites with customized package selection

Module nomenclature
python-env-distributor/pyMajor.pyMinor/distMajor/pyVersion[…]-moduleBuild
A default selection of packages deemed useful for jobs on Carbon.
python-env-distributor-purpose/pyMajor.pyMinor/distMajor/pyVersion[…]-moduleBuild
Same, with alternative package selections. (TBD)
Contains
  • Python software suite with the package selection customized for Carbon.
This is usually implemented as a Conda "environment" derived from a vendor-distributed Conda suite.