chapel-lang / chapel

a Productive Parallel Programming Language
https://chapel-lang.org
Other
1.78k stars 420 forks source link

Cray module ordering requirements for linear algebra #8619

Open dmk42 opened 6 years ago

dmk42 commented 6 years ago

On Cray systems, Chapel's linear algebra package uses the cray-libsci module. This module sets important environment variables such as CRAY_LIBSCI_PREFIX_DIR that point to the include files and libraries needed.

When a compiler version is changed, such as

module swap gcc gcc/6.3.0

a different version of cray-libsci is needed, but the compiler modules do not change environment variables like CRAY_LIBSCI_PREFIX_DIR.

The PrgEnv-* and cray-libsci modules do make the necessary changes. Therefore, when swapping to a different compiler version, either a PrgEnv- module or the cray-libsci module must be loaded after the new compiler version. For example:

module load gcc/6.3.0
module swap PrgEnv-cray PrgEnv-gnu

or

module swap gcc gcc/6.3.0
module unload cray-libsci
module load cray-libsci

This is a corner case because most Chapel users will be running the default version of PrgEnv compilers, but it should be kept in mind in case someone runs into it.

Feel free to update this issue as needed.

dmk42 commented 6 years ago

@ben-albrecht - Just tagging you so you can see this issue.