Demonstrate sparse matrix-vector multiplication with Intel MKL. Also has various structural components that are intended to be transferable across projects.
Use either pFUnit
or test-drive
for unit testing.
Make sure you have the Intel oneAPI HPC Toolkit or Intel Fortran Essentials.
Then, you can configure, build, and run tests for the project.
# test-drive builds faster than pfunit
./config/intel_ubuntu_test_drive
Alternatively, if on a system where you need to specify a different MKL library
and MKL include path, you can do this with the flags -DMKLLIB
and -DMKLINCLUDE
during configuration. The below bash script does the necessary configuration,
as an example, for DKRZ's Levante.
./config/intel_levante
You can build the documentation separately with
cmake --build build --target doxygen_docs
- Test file based on gist.
- Cmake linking based on link line advisor
- Installing intel fortran compiler
- Installing mkl
- Set environment vars
- I did
INCLUDE mkl_spblas.f90
above thePROGRAM
statement and theuse mkl_spblas
in the program block since i mimicked the direct sparse solver example for f90 on pg. 1941 of the mkl manual - Directory structure from fpm even though using cmake
- fftpack uses cmake for dependencies instead of git submodule and fetch content
- Doxygen real Fortran examples: NOAA-ECM/fv3atm