Compilers
Intel Compiler
The theory group has a five user floating license for Intel Parallel Studio.
The current version is XE20, update 4. All available versions are :
- XE20, update 4
- XE20, update 2
- XE20, update 1
- XE20
- XE19, update 5
- XE19, update 4
- XE19, update 3
- XE19, update 2
- XE19, update 1
- XE19
- XE18, update 4
- XE18, update 3
- XE18, update 2
- XE18, update 1
- XE18
- XE17, update 8
- XE17, update 7
- XE17, update 6
- XE17, update 5
- XE17, update 4
- XE17, update 2
- XE17,
- XE16, update 4,
- XE16,
- XE15, update 6,
- XE15, update 3,
- XE15, update 2,
- XE14, and
- XE13 update 4
of Parallel or Cluster Studio, and XE12 update 4 of Composer XE.
Setting up the compiler environment
To use Intel Parallel Studio, set the environment for a terminal window.
Note, the commands for XE14 and up initialize not only the compilers but also the Intel Trace Analyzer, Intel MPI, Inspector XE, VTune(TM) Amplifier XE, and Advisor XE.
Initialize Intel Parallel Studio using the following script, e.g. in
your .profile
:
VERSION=XE20u4 INITPATH=parallel_studio_xe_2020 INITSCRIPT=psxevars.sh . /sw/linux/intel/${VERSION}/${INITPATH}/${INITSCRIPT}
For other versions of Intel Parallel Studio replace the variable in the script with the values of the desired version's row in the table below:
Compiler version | VERSION | INITPATH | INITSCRIPT |
---|---|---|---|
XE20 update 4 | XE20u4 | parallel_studio_xe_2020 | psxevars.sh |
XE20 update 2 | XE20u2 | parallel_studio_xe_2020 | psxevars.sh |
XE20 update 1 | XE20u1 | parallel_studio_xe_2020 | psxevars.sh |
XE20 | XE20 | parallel_studio_xe_2020 | psxevars.sh |
XE19 update 5 | XE19u5 | parallel_studio_xe_2019 | psxevars.sh |
XE19 update 4 | XE19u4 | parallel_studio_xe_2019 | psxevars.sh |
XE19 update 3 | XE19u3 | parallel_studio_xe_2019 | psxevars.sh |
XE19 update 2 | XE19u2 | parallel_studio_xe_2019 | psxevars.sh |
XE19 update 1 | XE19u1 | parallel_studio_xe_2019 | psxevars.sh |
XE19 | XE19 | parallel_studio_xe_2019 | psxevars.sh |
XE18 update 4 | XE18u4 | parallel_studio_xe_2018 | psxevars.sh |
XE18 update 3 | XE18u3 | parallel_studio_xe_2018 | psxevars.sh |
XE18 update 2 | XE18u2 | parallel_studio_xe_2018 | psxevars.sh |
XE18 update 1 | XE18u1 | parallel_studio_xe_2018 | psxevars.sh |
XE18 | XE18 | parallel_studio_xe_2018 | psxevars.sh |
XE17 update 8 | XE17u8 | parallel_studio_xe_2017 | psxevars.sh |
XE17 update 7 | XE17u7 | parallel_studio_xe_2017 | psxevars.sh |
XE17 update 6 | XE17u6 | parallel_studio_xe_2017 | psxevars.sh |
XE17 update 5 | XE17u5 | parallel_studio_xe_2017 | psxevars.sh |
XE17 update 4 | XE17u4 | parallel_studio_xe_2017 | psxevars.sh |
XE17 update 2 | XE17u2 | parallel_studio_xe_2017.2.050 | psxevars.sh |
XE17 update 1 | XE17u1 | parallel_studio_xe_2017.1.043 | psxevars.sh |
XE17 | XE17 | parallel_studio_xe_2017.0.035 | psxevars.sh |
XE16 update 4 | XE16u4 | parallel_studio_xe_2016.4.072 | psxevars.sh |
XE16 | XE16 | parallel_studio_xe_2016.0.047 | psxevars.sh |
XE15 update 6 | XE15u6 | parallel_studio_xe_2015 | psxevars.sh |
XE15 update 3 | XE15u3 | parallel_studio_xe_2015 | psxevars.sh |
XE15 update 2 | XE15u2 | parallel_studio_xe_2015 | psxevars.sh |
XE13 update 4 | XE13u4 | ics/2013.1.039 | ictvars.sh |
Setting up XE12 update 2 (replace “intel64” with “ia32” if you are using a 32-bit platform)
. /sw/linux/intel/XE12u2/bin/compilervars.sh intel64
Using the compilers
The commands to start the compilers are:
icpc
for the C++ compilericc
for the C compilerifort
for the FORTRAN compiler
To get help, append the -help
option or precede with the man(1)
command.
Compiler documentation
You can find more documentation here:
- Intel Online Documentation
- XE20, update 4
/sw/linux/intel/XE20u4/documentation_2020/en/ps2020/getstart_clus.htm
- XE20, update 2
/sw/linux/intel/XE20u2/documentation_2020/en/ps2020/getstart_clus.htm
- XE20, update 1
/sw/linux/intel/XE20u1/documentation_2020/en/ps2020/getstart_clus.htm
- XE20
/sw/linux/intel/XE20/documentation_2020/en/ps2020/getstart_clus.htm
- XE19, update 5
/sw/linux/intel/XE19u5/documentation_2019/en/ps2019/getstart_clus.htm
- XE19, update 4
/sw/linux/intel/XE19u4/documentation_2019/en/ps2019/getstart_clus.htm
- XE19, update 3
/sw/linux/intel/XE19u3/documentation_2019/en/ps2019/getstart_clus.htm
- XE19, update 2
/sw/linux/intel/XE19u2/documentation_2019/en/ps2019/getstart_clus.htm
- XE19, update 1
/sw/linux/intel/XE19u1/documentation_2019/en/ps2019/getstart_clus.htm
- XE19
/sw/linux/intel/XE19/documentation_2019/en/ps2019/getstart_clus.htm
- XE18, update 4
/sw/linux/intel/XE18u4/documentation_2018/en/ps2018/getstart_clus_l.htm
- XE18, update 3
/sw/linux/intel/XE18u3/documentation_2018/en/ps2018/getstart_clus_l.htm
- XE18, update 2
/sw/linux/intel/XE18u2/documentation_2018/en/ps2018/getstart_clus_l.htm
- XE18, update 1
/sw/linux/intel/XE18u1/documentation_2018/en/ps2018/getstart_clus_l.htm
- XE18
/sw/linux/intel/XE18/documentation_2018/en/ps2018/getstart_clus_l.htm
- XE17, update 8
/sw/linux/intel/XE17u8/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 7
/sw/linux/intel/XE17u7/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 6
/sw/linux/intel/XE17u6/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 5
/sw/linux/intel/XE17u5/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 4
/sw/linux/intel/XE17u4/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 2
/sw/linux/intel/XE17u2/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17, update 1
/sw/linux/intel/XE17u1/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE17
/sw/linux/intel/XE17/documentation_2017/en/ps2017/getstart_clus_l.htm
- XE16, update 4
/sw/linux/intel/XE16u4/documentation_2016/en/ps2016/getstart_clus_l.htm
- XE16
/sw/linux/intel/XE16/documentation_2016/en/ps2016/getstart_clus_l.htm
- XE15, update 6
/sw/linux/intel/XE15u6/parallel_studio_xe_2015/Documentation/en_US/cluster_edition/Doc_Index.htm
- XE15, update 3
/sw/linux/intel/XE15u3/parallel_studio_xe_2015/Documentation/en_US/cluster_edition/Doc_Index.htm
- XE15, update 2
/sw/linux/intel/XE15u2/parallel_studio_xe_2015/Documentation/en_US/cluster_edition/Doc_Index.htm
- XE14
- C/C++:
/sw/linux/intel/XE14/composerxe/Documentation/en_US/get_started_lc.htm
- Fortran:
/sw/linux/intel/XE14/composerxe/Documentation/en_US/get_started_lf.htm
- Math Kernel Library:
/sw/linux/intel/XE14/composerxe/Documentation/en_US/mkl/get_started.html
- Integrated Performance Primitives:
/sw/linux/intel/XE14/composerxe/Documentation/en_US/ipp/get_started.html
- Threaded Building Blocks:
/sw/linux/intel/XE14/composerxe/Documentation/en_US/tbb/get_started.html
- C/C++:
- XE13, update 4
- C/C++:
/sw/linux/intel/XE13u4/Documentation/en_US/get_started_lc.htm
- Fortran:
/sw/linux/intel/XE13u4/Documentation/en_US/get_started_lf.htm
- C/C++:
- XE13
- C/C++:
/sw/linux/intel/XE13u2/Documentation/en_US/get_started_lc.htm
- Fortran:
/sw/linux/intel/XE13u2/Documentation/en_US/get_started_lf.htm
- Intel Trace Analyzer:
/sw/linux/intel/XE13u2/Doc_Index.html
- C/C++:
- XE12
/sw/linux/intel/XE12u2/composerxe-2011.2.137/Documentation/en_US/documentation_c.htm
/sw/linux/intel/XE12u2/composerxe-2011.2.137/Documentation/en_US/documentation_f.htm
Intel Trace Analyzer (XE <= 13.4)
Use the Intel® Trace Analyzer and Collector to understand the MPI application behavior, quickly find bottlenecks and achieve high performance for parallel cluster applications.
Note: For Parallel Studio XE15 and up you initialize the trace analyzer by setting up the compiler environment.
To simplify the use of the Intel Trace Analyzer and Collector, set up its environment in your shell by using the provided scripts.
Using bash/ksh/sh:
. /sw/linux/intel/XE13u4/itac/8.1.2.033/bin/itacvars.sh
Using legacy csh/tcsh:
source /sw/linux/intel/XE13u4/itac/8.1.2.033/bin/itacvars.csh
For more information see Intel® Trace Analyzer and Collector - Documentation
Intel MPI Library (XE 13.4)
Using bash/ksh/sh:
. /sw/linux/intel/XE13u4/impi/4.1.1.036/bin64/mpivars.sh
Using legacy csh/tcsh
source /sw/linux/intel/XE13u4/impi/4.1.1.036/bin64/mpivars.csh
For more information see Intel® MPI Library - Documentation
Portland Group Compiler
Note: We don't license the Portland Group Compiler anymore. Apparently it hasn't been missed since at least 2014.
The existing license includes use of the accelerator compiler. You can use it from the group's Linux machines; up to 5 users can compile at the same time.
To use the 64-bit PGI compilers and tools:
Community Version 19.10 on Debina Linux 10
You can put the following script in your .profile
. Please adjust the
set_pgi
call to your preferred compiler version.
# call with values of 19.10 set_d10pgi() { PGI=/sw/linux/pgi/$1-d10; export PGI MANPATH=$MANPATH:$PGI/linux86-64/$1/man; export MANPATH LM_LICENSE_FILE=$PGI/license.dat; export LM_LICENSE_FILE PATH=$PGI/linux86-64/$1/bin:$PATH; export PATH } set_d10pgi 19.10
Version 14.10 and 14.9 on Debian Linux 9
You can put the following script in your .profile
. Please adjust the
set_pgi
call to your preferred compiler version.
# call with values of 14.9 or 14.10 set_pgi() { PGI=/sw/linux/pgi/$1-debian; export PGI MANPATH=$MANPATH:$PGI/linux86-64/$1/man; export MANPATH LM_LICENSE_FILE=$PGI/license.dat; export LM_LICENSE_FILE PATH=$PGI/linux86-64/$1/bin:$PATH; export PATH } set_pgi 14.10
Version 11.10, 12.10, 13.7, 13.8, 13.10, or 14.9
You can put the following script in your .profile
. Please adjust the
set_pgi
call to your preferred compiler version.
# call with values of 11.10, 12.10, 13.7, 13.8, 13.10. or 14.9 set_pgi() { PGI=/sw/linux/pgi/$1; export PGI MANPATH=$MANPATH:$PGI/linux86-64/$1/man; export MANPATH LM_LICENSE_FILE=$PGI/license.dat; export LM_LICENSE_FILE PATH=$PGI/linux86-64/$1/bin:$PATH; export PATH } set_pgi 13.10
Note, when using this code, you can use the other versions by simply
calling e.g. set_pgi 12.10
on the command line. Then your environment is
set to use version 12.10 of the PGI compilers.
Version 10.9
You can put the following script in your .profile
.
PGI=/sw/linux/pgi-10.9; export PGI MANPATH=$MANPATH:$PGI/linux86-64/10.9/man; export MANPATH LM_LICENSE_FILE=$PGI/license.dat; export LM_LICENSE_FILE PATH=$PGI/linux86-64/10.9/bin:$PATH; export PATH
You can find a more documentation on the Portland group web site: www.pgroup.com
Notes on compiling
Note: Do not modify or set LD_LIBRARY_PATH
in your
.bashrc
, .profile
or other shell initialization files.
Note: Try to never use the LD_LIBRARY_PATH
variable, if possible.
See
https://enchildfone.wordpress.com/2010/03/23/a-description-of-rpath-origin-ld_library_path-and-portable-linux-binaries/
for hints on how to avoid the variable.