spack.platforms package¶
Submodules¶
spack.platforms.cray module¶
- class spack.platforms.cray.Cray[source]¶
Bases:
spack.platforms._platform.Platform
- classmethod detect()[source]¶
Detect whether this system is a Cray machine.
We detect the Cray platform based on the availability through module of the Cray programming environment. If this environment is available, we can use it to find compilers, target modules, etc. If the Cray programming environment is not available via modules, then we will treat it as a standard linux system, as the Cray compiler wrappers and other components of the Cray programming environment are irrelevant without module support.
- priority = 10¶
spack.platforms.darwin module¶
spack.platforms.linux module¶
spack.platforms.test module¶
Module contents¶
- class spack.platforms.Cray[source]¶
Bases:
spack.platforms._platform.Platform
- classmethod detect()[source]¶
Detect whether this system is a Cray machine.
We detect the Cray platform based on the availability through module of the Cray programming environment. If this environment is available, we can use it to find compilers, target modules, etc. If the Cray programming environment is not available via modules, then we will treat it as a standard linux system, as the Cray compiler wrappers and other components of the Cray programming environment are irrelevant without module support.
- priority = 10¶
- class spack.platforms.Darwin[source]¶
Bases:
spack.platforms._platform.Platform
- binary_formats = ['macho']¶
binary formats used on this platform; used by relocation logic
- priority = 89¶
- class spack.platforms.Linux[source]¶
Bases:
spack.platforms._platform.Platform
- priority = 90¶
- class spack.platforms.Platform(name)[source]¶
Bases:
object
Platform is an abstract class extended by subclasses.
To add a new type of platform (such as cray_xe), create a subclass and set all the class attributes such as priority, front_target, back_target, front_os, back_os.
Platform also contain a priority class attribute. A lower number signifies higher priority. These numbers are arbitrarily set and can be changed though often there isn’t much need unless a new platform is added and the user wants that to be detected first.
Targets are created inside the platform subclasses. Most architecture (like linux, and darwin) will have only one target family (x86_64) but in the case of Cray machines, there is both a frontend and backend processor. The user can specify which targets are present on front-end and back-end architecture.
Depending on the platform, operating systems are either autodetected or are set. The user can set the frontend and backend operating setting by the class attributes front_os and back_os. The operating system will be responsible for compiler detection.
- add_operating_system(name, os_class)[source]¶
Add the operating_system class object into the platform.operating_sys dictionary.
- add_target(name, target)[source]¶
Used by the platform specific subclass to list available targets. Raises an error if the platform specifies a name that is reserved by spack as an alias.
- back_end = None¶
- back_os = None¶
- binary_formats = ['elf']¶
binary formats used on this platform; used by relocation logic
- default = None¶
- default_os = None¶
- classmethod detect()[source]¶
Return True if the the host platform is detected to be the current Platform class, False otherwise.
Derived classes are responsible for implementing this method.
- front_end = None¶
- front_os = None¶
- priority = None¶
- reserved_oss = ['default_os', 'frontend', 'fe', 'backend', 'be']¶
- reserved_targets = ['default_target', 'frontend', 'fe', 'backend', 'be']¶
- class spack.platforms.Test[source]¶
Bases:
spack.platforms._platform.Platform
- back_end = 'core2'¶
- back_os = 'debian6'¶
- default = 'core2'¶
- default_os = 'debian6'¶
- front_end = 'x86_64'¶
- front_os = 'redhat6'¶
- priority = 1000000¶
- spack.platforms.by_name(name)[source]¶
Return a platform object that corresponds to the given name or None if there is no match.
- Parameters
name (str) – name of the platform
- spack.platforms.host()¶
The current platform used by Spack. May be swapped by the use_platform context manager.