38,760
edits
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 6: | Line 6: | ||
== <code>StdEnv/2016.4</code> == | == <code>StdEnv/2016.4</code> == | ||
This was the initial version of our software environment, and was released in 2016, with the deployment of [[Cedar]] and [[Graham]]. This branch features the compilers GCC | This was the initial version of our software environment, and was released in 2016, with the deployment of [[Cedar]] and [[Graham]]. This branch features the compilers GCC 5.4.0 and Intel 2016.4 as default compilers, and Open MPI 2.1.1 as its default implementation of MPI. Most of the software compiled with this environment does not support AVX512 instructions provided by the Skylake processors on [[Béluga]], [[Niagara]], as well as the most recent additions to Cedar and Graham. | ||
To activate this environment, use the command | To activate this environment, use the command | ||
Line 12: | Line 12: | ||
== <code>StdEnv/2018.3</code> == | == <code>StdEnv/2018.3</code> == | ||
This was the second revision of our software environment, and was released in 2018, with the deployment of [[Béluga]], and shortly after the deployment of [[Niagara]]. Defaults were upgraded to GCC | This was the second revision of our software environment, and was released in 2018, with the deployment of [[Béluga]], and shortly after the deployment of [[Niagara]]. Defaults were upgraded to GCC 7.3.0, Intel 2018.3, and Open MPI 3.1.2. This was also the first version to really support AVX512 instructions. | ||
To activate this environment, use the command | To activate this environment, use the command | ||
Line 18: | Line 18: | ||
== <code>StdEnv/2020</code> == | == <code>StdEnv/2020</code> == | ||
This is the most recent iteration of our software environment, and the largest change so far. It uses GCC 9.3.0, Intel 2020, and | This is the most recent iteration of our software environment, and the largest change so far. It uses GCC 9.3.0, Intel 2020.1, and Open MPI 4.0.3 as defaults. Several changes were made with this release, most of which result in performance improvements. | ||
To activate this environment, use the command | To activate this environment, use the command | ||
Line 30: | Line 30: | ||
We also installed a more recent version of the [https://en.wikipedia.org/wiki/GNU_C_Library GNU C Library], which introduces optimizations in some mathematical functions. This has increased the requirement on the version of the Linux Kernel (see below). | We also installed a more recent version of the [https://en.wikipedia.org/wiki/GNU_C_Library GNU C Library], which introduces optimizations in some mathematical functions. This has increased the requirement on the version of the Linux Kernel (see below). | ||
=== Change in the compatibility layer === | === Change in the compatibility layer === | ||
Another major change introduced in the <code>2020</code> release is a switch between two tools for our ''compatibility layer''. This is a layer of the software hierarchy which we provide to isolate it from the underlying operating system. For example, this ensures that our software packages will work whether it is run on CentOS, Ubuntu, or Fedora systems. For the <code>2016.4</code> and <code>2018.3</code> versions, we used the [https://en.wikipedia.org/wiki/Nix_package_manager Nix package manager], while for the <code>2020</code> version, we use [https://wiki.gentoo.org/wiki/Project:Prefix Gentoo Prefix]. | Another major change introduced in the <code>2020</code> release is a switch between two tools for our ''compatibility layer''. This is a layer of the software hierarchy which we provide to isolate it from the underlying operating system. For example, this ensures that our software packages will work whether it is run on CentOS, Ubuntu, or Fedora systems. For the <code>2016.4</code> and <code>2018.3</code> versions, we used the [https://en.wikipedia.org/wiki/Nix_package_manager Nix package manager], while for the <code>2020</code> version, we use [https://wiki.gentoo.org/wiki/Project:Prefix Gentoo Prefix]. | ||
=== Change in kernel requirement === | === Change in kernel requirement === | ||
Versions <code>2016.4</code> and <code>2018.3</code> required a Linux kernel version 2.6.32 or more recent. This supported CentOS versions starting at CentOS 6. With the <code>2020</code> version, we require a Linux kernel 3.10 or better. This means it no longer supports CentOS 6, but requires CentOS 7 instead. Other distributions usually have kernels which are much more recent, so you probably do not need to change your distribution if you are using this standard environment on something other than CentOS. | Versions <code>2016.4</code> and <code>2018.3</code> required a Linux kernel version 2.6.32 or more recent. This supported CentOS versions starting at CentOS 6. With the <code>2020</code> version, we require a Linux kernel 3.10 or better. This means it no longer supports CentOS 6, but requires CentOS 7 instead. Other distributions usually have kernels which are much more recent, so you probably do not need to change your distribution if you are using this standard environment on something other than CentOS. | ||
Line 41: | Line 41: | ||
= Do I need to reinstall/recompile my code if the <code>StdEnv</code> version changes? = | = Do I need to reinstall/recompile my code if the <code>StdEnv</code> version changes? = | ||
If you compile your own code, or install R or Python packages, yes, you should recompile or reinstall the packages you need using the newer version the standard environment. | If you compile your own code, or install R or Python packages, yes, you should recompile or reinstall the packages you need using the newer version of the standard environment. |