This page explains libraries that can be used on SQUID, 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 SQUID, 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/2021
We explain below how to link this library:
serial execution
$ module load BaseCPU/2021
$ icc -mkl=sequential sample.c # dynamic link
$ icc -mkl=sequential -static-intel sample.c # static link
Thread parall
$ module load BaseCPU/2021
$ icc -mkl=parallel sample.c # dynamic link
$ icc -mkl=parallel -static-intel sample.o # static link
MPI parallel
$ module load BaseCPU/2021
$ mpiicc -mkl=cluster sample.c # dynamic link
$ mpiicc -mkl=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. It is maintained for each computing environment. To use this library, give the option -lhdf5 at compile time. The following is an example link to the library.
$ module load BaseCPU
$ module load hdf5
$ icc -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 prepared to be used from C/C++/FORTRAN languages for each computing environment. 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
$ icc -o ncdf-sample ncdf-sample.c -lnetcdf
C++
$ module load BaseCPU
$ module load netcdf-cxx
$ icpc -o ncdf-sample ncdf-sample.cpp -lnetcdf_c++4 -lnetcdf
FORTRAN
$ module load BaseCPU
$ module load netcdf-fortran
$ ifort -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 for each computing environment. In order to use the library, you need to add options such as -lpnetcdf when compiling. The following is an example link to the library.
C
$ module load BaseCPU
$ module load pnetcdf-c
$ mpiicc -o pncdf-sample pncdf-sample.c -lpnetcdf
C++
$ module load BaseCPU
$ module load pnetcdf-cxx
$ mpiicpc -o pncdf-sample pncdf-sample.cpp -lpnetcdf
FORTRAN
$ module load BaseCPU
$ module load pnetcdf-fortran
$ mpiifort -o pncdf-sample pncdf-sample.f90 -lpnetcdf