spack.operating_systems package


spack.operating_systems.cnk module

class spack.operating_systems.cnk.Cnk

Bases: spack.architecture.OperatingSystem

Compute Node Kernel (CNK) is the node level operating system for the IBM Blue Gene series of supercomputers. The compute nodes of the Blue Gene family of supercomputers run CNK, a lightweight kernel that runs on each node and supports one application running for one user on that node.

spack.operating_systems.cnl module

class spack.operating_systems.cnl.Cnl

Bases: spack.architecture.OperatingSystem

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)

make_compilers(compiler_id, paths)

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:


The dictionary we produce looks like this:

  "RELEASE": "6.0.UP07",
  "BUILD": "6.0.7424",

dictionary of release attributes

Return type



Read the CLE release file and return the Cray OS version.

This file is present on older versions of Cray.

The release file looks something like this:


the Cray OS version

Return type


spack.operating_systems.cray_frontend module

class spack.operating_systems.cray_frontend.CrayFrontend

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.


Calls the default function but unloads Cray’s programming environments first.

This prevents from detecting Cray compiler wrappers and avoids possible false detections.


Context manager that unloads Cray Programming Environments.

spack.operating_systems.linux_distro module

class spack.operating_systems.linux_distro.LinuxDistro

Bases: spack.architecture.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

Bases: spack.architecture.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.


Return SDK path


temporary workaround to return a macOS version as a Version object

Module contents