Intel 18 to Become New Default Compiler on Stampede2

Last update: February 12, 2019

During scheduled Stampede2 maintenance on Tuesday, February 26, 2019, TACC will change the default software stack to one based on the Intel 18 compiler. No existing compilers will be removed.

The Intel 18.0.2 compiler will replace the Intel 17.0.4 version as the default version on Stampede2 on February 26, 2019. The Intel 17.0.4 compiler and software stack will remain available to those who load the appropriate modules explicitly.

This document includes technical details that may be useful during this migration.

Importance of Consistent Environment

Always run your applications with the same modules that you used to build them. This is especially important to keep in mind during the transition to a new default compiler. The key to achieving this consistency is controlling the compiler version with appropriate module commands.

Loading Defaults vs. Controlling Version Numbers Explicitly

Executing "module load intel" (no explicit version) will always give you the default compiler and associated software stack; similarly for other modules. Prior to February 26, 2019, this command will load the Intel 17.0.4 compiler and software stack. As of this date, the command will load the Intel 18.0.2 compiler and software stack.

Executing "module load intel/17.0.4" (note the explicit version number) will load the requested version of the compiler. This is the appropriate way to choose a module other than the default.

You should examine all module commands in your current workflow (especially build, batch, and startup scripts) and edit them as necessary to ensure they will have the intended effect as of February 26.

Downstream Effects

Keep in mind that changing your compiler can affect other modules. For example, consider the effect of these commands:

login1$ module load intel/17.0.4
login1$ module load impi         #loads the default version of Intel MPI (17.0.4 for this compiler)
login1$ module load intel/18.0.2

This sequence has the effect of loading the impi/18.0.2 module, which is the default for intel/18.0.2.

Using "module save" to Control the Environment

Executing "module save" has the effect of saving the currently loaded module environment as a collection. After executing "module save", the saved collection will load any time you begin a new login session or execute "module restore". Execute "module help" for more information.

Note that "module save" distinguishes between a collection based on default requests (e.g. "module load intel") and one based on explicit requests (e.g. "module load intel/17.0.4"). If you have a saved collection based on a load using "module load intel", loading the saved collection will always give you the default Intel compiler. This means that loading the collection will give you Intel 17.0.4 before February 26, and Intel 18.0.2 after that date. You can execute "module describe" to see what is in your saved collection; in particular you'll be able to see whether you are requesting default modules or explicit versions.

If you need or want to use Intel 17.0.4 after Intel 18 becomes the default, you can use "module save" to ensure that every login session has the older compiler stack loaded. To do so, simply save your collection after doing an explicit load of the intel/17.0.4 module. For example:

login1$ module load intel/17.0.4     # be sure to specify version
...other module commands as desired...
login1$ module list
login1$ module save
login1$ module describe

Please contact us through the help desk on either the XSEDE or TACC user portal if you have questions or concerns.