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

