This page explains libraries that can be used on OCTOPUS general-purpose CPU nodes.
 
Intel MKL
HDF5
NetCDF
Parallel netcdf
 

Intel Math Kernel Library (Intel MKL)

    Intel MKL is a numerical arithmetic library developed by Intel, and various libraries including BLAS, LAPACK, ScaLAPACK, etc. can be used. On OCTOPUS, it is possible to use it in the environment of Intel Compiler loaded by BaseCPU module. Please load the BaseCPU environment before using Intel MKL.

    module load BaseCPU

    We explain below how to link this library:
     

    Serial execution

      $ module load BaseCPU
      $ icx -qmkl=sequential sample.c # dynamic link
      $ icx -qmkl=sequential -static-intel sample.c # static link

       

    Thread parall

      $ module load BaseCPU
      $ icx -qmkl=parallel sample.c # dynamic link
      $ icx -qmkl=parallel -static-intel sample.c # static link

       

    MPI parallel

      $ module load BaseCPU
      $ mpiicx -qmkl=cluster sample.c # dynamic link
      $ mpiicx -qmkl=cluster -static-intel sample.c # static link

       

    Please refer official document for detail.
    Official manual and documents list
     

HDF5

    HDF5 is a library for generating files that can store large amounts of data in a hierarchically structured manner.
    When using the HDF5 output format in parallel execution, please execute "module load hdf5.mpi" and use it.
    When using in serial execution, please execute "module load hdf5" and use it.
    In order to use the library, you need to add the option -lhdf5 when compiling. The following are examples link to the library.

    $ module load BaseCPU
    $ module load hdf5
    $ icx -o h5-sample h5-sample.c -lhdf5

 

NetCDF

    NetCDF is a library that allows the use of binary file format, which is widely used as a common data format for the purpose of storing scientific multi-dimensional data. In this system, NetCDF is available in C, C++, and Fortran languages. In order to use the library, you need to add options such as -lnetcdf when compiling. The following is an example link to the library.

    C

      $ module load BaseCPU
      $ module load netcdf-c
      $ icx -o ncdf-sample ncdf-sample.c -lnetcdf

    C++

      $ module load BaseCPU
      $ module load netcdf-cxx
      $ icpx -o ncdf-sample ncdf-sample.cpp -lnetcdf_c++4 -lnetcdf

    Fortran

      $ module load BaseCPU
      $ module load netcdf-fortran
      $ ifx -o ncdf-sample ncdf-sample.f90 -lnetcdff -lnetcdf

 

PnetCDF

    PnetCDF is a library for concurrent access to NetCDF format files from parallel programs. In this system, PnetCDF is available in C, C++, and Fortran languages. In order to use the library, you need to add options such as -lpnetcdf when compiling. The following are examples link to the library.

    C

      $ module load BaseCPU
      $ module load pnetcdf-c
      $ mpiicx -o pncdf-sample pncdf-sample.c -lpnetcdf

    C++

      $ module load BaseCPU
      $ module load pnetcdf-cxx
      $ mpiicpx -o pncdf-sample pncdf-sample.cpp -lpnetcdf

    Fortran

      $ module load BaseCPU
      $ module load pnetcdf-fortran
      $ mpiifx -o pncdf-sample pncdf-sample.f90 -lpnetcdf