spack.operating_systems package¶
Submodules¶
spack.operating_systems.cray_backend module¶
- class spack.operating_systems.cray_backend.CrayBackend[source]¶
Bases:
spack.operating_systems.linux_distro.LinuxDistro
Compute Node Linux (CNL) is the operating system used for the Cray XC series super computers. It is a very stripped down version of GNU/Linux. Any compilers found through this operating system will be used with modules. If updated, user must make sure that version and name are updated to indicate that OS has been upgraded (or downgraded)
- spack.operating_systems.cray_backend.read_cle_release_file()[source]¶
Read the CLE release file and return a dict with its attributes.
This file is present on newer versions of Cray.
The release file looks something like this:
RELEASE=6.0.UP07 BUILD=6.0.7424 ...
The dictionary we produce looks like this:
{ "RELEASE": "6.0.UP07", "BUILD": "6.0.7424", ... }
- Returns
dictionary of release attributes
- Return type
spack.operating_systems.cray_frontend module¶
- class spack.operating_systems.cray_frontend.CrayFrontend[source]¶
Bases:
spack.operating_systems.linux_distro.LinuxDistro
Represents OS that runs on login and service nodes of the Cray platform. It acts as a regular Linux without Cray-specific modules and compiler wrappers.
- property compiler_search_paths¶
Calls the default function but unloads Cray’s programming environments first.
This prevents from detecting Cray compiler wrappers and avoids possible false detections.
spack.operating_systems.linux_distro module¶
- class spack.operating_systems.linux_distro.LinuxDistro[source]¶
Bases:
spack.operating_systems._operating_system.OperatingSystem
This class will represent the autodetected operating system for a Linux System. Since there are many different flavors of Linux, this class will attempt to encompass them all through autodetection using the python module platform and the method platform.dist()
spack.operating_systems.mac_os module¶
- class spack.operating_systems.mac_os.MacOs[source]¶
Bases:
spack.operating_systems._operating_system.OperatingSystem
This class represents the macOS operating system. This will be auto detected using the python platform.mac_ver. The macOS platform will be represented using the major version operating system name, i.e el capitan, yosemite…etc.
Module contents¶
- class spack.operating_systems.CrayBackend[source]¶
Bases:
spack.operating_systems.linux_distro.LinuxDistro
Compute Node Linux (CNL) is the operating system used for the Cray XC series super computers. It is a very stripped down version of GNU/Linux. Any compilers found through this operating system will be used with modules. If updated, user must make sure that version and name are updated to indicate that OS has been upgraded (or downgraded)
- class spack.operating_systems.CrayFrontend[source]¶
Bases:
spack.operating_systems.linux_distro.LinuxDistro
Represents OS that runs on login and service nodes of the Cray platform. It acts as a regular Linux without Cray-specific modules and compiler wrappers.
- property compiler_search_paths¶
Calls the default function but unloads Cray’s programming environments first.
This prevents from detecting Cray compiler wrappers and avoids possible false detections.
- class spack.operating_systems.LinuxDistro[source]¶
Bases:
spack.operating_systems._operating_system.OperatingSystem
This class will represent the autodetected operating system for a Linux System. Since there are many different flavors of Linux, this class will attempt to encompass them all through autodetection using the python module platform and the method platform.dist()
- class spack.operating_systems.MacOs[source]¶
Bases:
spack.operating_systems._operating_system.OperatingSystem
This class represents the macOS operating system. This will be auto detected using the python platform.mac_ver. The macOS platform will be represented using the major version operating system name, i.e el capitan, yosemite…etc.
- class spack.operating_systems.OperatingSystem(name, version)[source]¶
Bases:
object
Base class for all the Operating Systems.
On a multiple architecture machine, the architecture spec field can be set to build a package against any target and operating system that is present on the platform. On Cray platforms or any other architecture that has different front and back end environments, the operating system will determine the method of compiler detection.
There are two different types of compiler detection:
Through the $PATH env variable (front-end detection)
Through the module system. (back-end detection)
Depending on which operating system is specified, the compiler will be detected using one of those methods.
For platforms such as linux and darwin, the operating system is autodetected.