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

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

    We explain below how to link this library:
     

    serial execution

      $ module load BaseCPU
      $ icc -mkl=sequential sample.c # dynamic link
      $ icc -mkl=sequential -static-intel sample.c # static link

       

    Thread parall

      $ module load BaseCPU
      $ icc -mkl=parallel sample.c # dynamic link
      $ icc -mkl=parallel -static-intel sample.o # static link

       

    MPI parallel

      $ module load BaseCPU
      $ 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

 

FFTW

    $ module load BaseCPU
    $ module load fftw/3.3.10

    Paths are available for both single and double precision versions. Please select the one you want to use in the -l option.