You can use intel compiler(ver 18.0.3) for FORTRAN/C/C++ on OCTOPUS. How to use older version is this.

 

Compile command

Please be aware that a command name differs according to the language used.

The compiler command for FORTRAN is "ifort", for C is "C", for C++ is "icpc". In the case of using MPI, please add "mpi" to head of the compiler command as mpiifort, mpiicc, mpiicpc.

C C++ FORTRAN
intel compiler icc icpc ifort
intelMPI compiler mpiicc mpiicpc mpiifort

 

how to use compiler

The following is how to use the compiler. If you use these options below, please specify at [option].
 

    Compilation for serial execution(un-parallelization)

    This compilation is very simple and does not parallelize for serial execution.

    $ ifort [options] source_file
    $ icc [options] source_file
    $ icpc [options] source_file

     

    Automatic Parallelization

    This is the process whereby the compiler automatically parallelizes the source program, and this is the parallelization for in node(shared-memory parallelization).

    $ ifort -parallel [options] source_file
    $ icc -parallel [options] source_file
    $ icpc -parallel [options] source_file

     

    OpenMP

    This is the process whereby the compiler parallelizes by the directive entered into the program, and this is the parallelization for in node. (shared-memory parallelization).

    $ ifort -openmp [options] source_file
    $ icc -qopenmp [options] source_file
    $ icpc -qopenmp [options] source_file

     

    MPI

    This is the inter node parallelization by MPI (distributed-memory parallelization).

    $ mpiifort [options] source_file
    $ mpiicc [options] source_file
    $ mpiicpc [options] source_file

     

    MPI and Automatic Parallelization

    This is hybrid parallelization. Parallelize inter node by MPI and in addition parallelize in node by automatic parallelization (distributed-memory parallelization and shared-memory parallelization).

    $ mpiifort -parallel [options] source_file
    $ mpiicc -parallel [options] source_file
    $ mpiicpc -parallel [options] source_file

     

    MPI and OpenMP

    This is hybrid parallelization. Parallelize inter node by MPI and in addition parallelize in node by OpenMP (distributed-memory parallelization and shared-memory parallelization).

    $ mpiifort -openmp [options] source_file
    $ mpiicc -qopenmp [options] source_file
    $ mpiicpc -qopenmp [options] source_file

     

 

Recommend options(* a example of this section is for FORTRAN)

     

    for users running a program first time

      intel compiler optimeze a program on generally level.

      $ ifort -O2 source_file

       

    for optimizing a program that user confirmed to ran successfully already

      a program may speed up. In the case, you must check if a result of your program with -O3 option is accurate. By case, your program may slow.

      $ ifort -O3 source_file

     

    optimization for CPU nodes

    If you chenge from -O2 to -O3, your program may speed up. In the case, you must check if a result of your protram with -O3 option is accurate.
     

      generating AVX-512 foundation instruction and avoidding zmm registers

      $ ifort -O2 -xCORE-AVX512 -qopt-zmm-usage=low source_file

       

      generating AVX-512 foundation instruction and using zmm registers without restrictions

      $ ifort -O2 -xCORE-AVX512 -qopt-zmm-usage=high source_file

       

      generating AVX-2 foundation instruction and optimizing for skylake processor

      $ ifort -O2 -xCORE-AVX2 -mtune=skylake-avx512 source_file

       

    optimization for Xeon Phi

    If you chenge from -O2 to -O3, your program may speed up. In the case, you must check if a result of your protram with -O3 option is accurate.
     

      generating intel AVX-512 foundation instructions for MIC

      $ ifort -O2 -xMIC-AVX512 source_file

       

    for debug

      $ ifort -g -traceback source_file
      # outputting informationes for debug and tracebug

      $ ifort -check uninit -check bounds source_file
      #(checking on runtime whether occurring for uninitialized variables and for array subscript and character substring expressions.)

     

How to use older version

Intel compilers listed below are available on OCTOPUS.
Execute the following commands before the "ifort", "icc", and "icpc" commands.

    version command
    14.0.2 source /octfs/apl/Intel/psxece2013u1/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2013u/impi/4.1.3.048/bin64/mpivars.sh
    15.0.1 source /octfs/apl/Intel/psxece2015u1/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2015u1/impi/5.0.2.044/bin64/mpivars.sh
    17.0.5 source /octfs/apl/Intel/psxece2017u5/compilers_and_libraries_2017.5.239/linux/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2017u5/compilers_and_libraries_2017.5.239/linux/mpi/bin64/mpivars.sh
    18.0.3 source /octfs/apl/Intel/psxece2018u3/compilers_and_libraries_2018.3.222/linux/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2018u3/compilers_and_libraries_2018.3.222/linux/mpi/bin64/mpivars.sh
    19.0.5.281 source /octfs/apl/Intel/psxece2019u5/compilers_and_libraries_2019.5.281/linux/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2019u5/compilers_and_libraries_2019.5.281/linux/mpi/intel64/bin/mpivars.sh
    19.1.0.166
    (デフォルト)
    source /octfs/apl/Intel/psxece2020/compilers_and_libraries_2020.0.166/linux/bin/ifortvars.sh intel64
    source /octfs/apl/Intel/psxece2020/compilers_and_libraries_2020.0.166/linux/mpi/intel64/bin/mpivars.sh

 

Manual

Please see the following page for a manual of intel compiler.
intel compiler manual