GithubHelp home page GithubHelp logo

mumps's Introduction

MUMPS sparse solver

ci oneapi-linux

CMake downloads the unmodified source tarfile from MUMPS developers and builds. CMake builds MUMPS in parallel faster and more conveniently than the original Makefiles. CMake allows easy reuse of MUMPS in external projects via CMake FetchContent or ExternalProject or cmake --install.

MUMPS CeCILL-C license is distinct from this CMake script license. MUMPS teams typically make new releases each year.

Many compilers and systems are supported by CMake build system on Windows, MacOS and Linux. Static (default) or Shared cmake -DBUILD_SHARED_LIBS=on MUMPS builds are supported.

Platforms known to work with MUMPS and CMake include:

  • Windows
  • MacOS
    • GCC (Homebrew)
  • Linux
    • GCC
    • Intel oneAPI
    • NVIDIA HPC SDK
    • Cray

By default PORD ordering is used. Scotch, METIS, and parMETIS ordering can be used.

Several LAPACK vendors are supported.

The MUMPS project is distinct from this CMake script wrapper. See the MUMPS Users email list and MUMPS User Guide for any questions about MUMPS itself.

Build

From this repo's top directory:

cmake -B build
cmake --build build

With the default options, under the build/ directory this results in library binaries:

# Linux / MacOS / MSYS2
libdmumps.a
libmumps_common.a
libpord.a
libsmumps.a

Numerous MUMPS build options are available.

Self test

Optionally, run self-tests:

ctest --test-dir build

Packaging

If you want to create an offline-installable package for MUMPS source, do:

cmake -Bbuild

cpack --config build/CPackSourceConfig.cmake

mumps's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mumps's Issues

Missing related dynamic library libdmumps_seq.so

I used the tutorial to install mumps, but didn't get libdmumps_seq.so , which is exactly what I needed.
My options.cmake is as follows:

option(autobuild "auto-build Lapack and/or Scalapack if missing or broken" true)
option(BUILD_TESTING "build with testing features" true)
option(dev "developer mode")
option(parallel "parallel or sequential (non-MPI, non-Scalapack)" ON)
option(intsize64 "use 64-bit integers in C and Fortran" OFF)

option(scotch "use Scotch" OFF)
option(openmp "use OpenMP" OFF)

and my directive is as follows:
cmake -B build -DMUMPS_UPSTREAM_VERSION=4.10.0 -DBUILD_SHARED_LIBS=on

Reason for not shipping the mumps sources

Is there a reason you don't just upload all the different mumps version as a git history into this repo, so users don't have to first download the sources? For my workflow (developer of software depending on Ipopt and therefore mumps), this is better because I don't have to wait for the download on every fresh cmake configuration step and work with git submodules instead.

I very much like the ease of use of your CMake files and therefore I wonder: Have you considered mirroring MUMPS here on github or do you know of any other git mirror?

Import Mumps targets from external projects (not online)

Hi,
given the quite complex CMake project with lots of dependencies it would be greate if there was a proper and smart way to import Mumps targets from external projects without fetching online. What is the best way?
My external project build with Visual Studio and I wouldn't make it compile with Ninja.

Can you provide a little snippet for it?

I don't see any typical file of CMake Packages so I assume there is none.

How to build mumps in Windows 10 + VS2019 + intel Fortran 2020?

Dear all,
Thanks for providing the useful cmake files to help build mumps in Windows. I noticed that the cmake files can download necessary source code automatically. But after I download the whole project here and try to build mumps by cmake, it displayed the following error messages:

`Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
The C compiler identification is MSVC 19.29.30146.0
The Fortran compiler identification is Intel 19.1.3.20201010
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
Detecting C compile features
Detecting C compile features - done
Detecting Fortran compiler ABI info
Detecting Fortran compiler ABI info - done
Determine Intel Fortran Compiler Implicit Link Path
Determine Intel Fortran Compiler Implicit Link Path - done
Check for working Fortran compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/ifort.exe - skipped
MUMPS 5.5.1.8 CMake 3.24.0-rc2 Toolchain
checking that C and Fortran compilers can link
checking that C and Fortran compilers can link - OK
Performing Test CMAKE_HAVE_LIBC_PTHREAD
Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
Looking for pthread_create in pthreads
Looking for pthread_create in pthreads - not found
Looking for pthread_create in pthread
Looking for pthread_create in pthread - not found
Check if compiler accepts -pthread
Check if compiler accepts -pthread - no
Found Threads: TRUE
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find LAPACK (missing: LAPACK_LIBRARY LAPACK_links)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/FindLAPACK.cmake:483 (find_package_handle_standard_args)
cmake/lapack.cmake:22 (find_package)
CMakeLists.txt:39 (include)

Configuring incomplete, errors occurred!
See also "J:/GitHub/mumps/64bit/CMakeFiles/CMakeOutput.log".
See also "J:/GitHub/mumps/64bit/CMakeFiles/CMakeError.log".`

Is there anything I missed?

I just simply fill the source code path and build path in cmake IDE, and then click 'Configure' button.

Thanks,
Tang Laoya

error #5102: Cannot open include file 'zmumps_struc.h'

Hello,
i am using your doc to include mumps into my project with FetchProject, as you described it.
But got this error when compiling:

: error #5102: Cannot open include file 'zmumps_struc.h'
    INCLUDE 'zmumps_struc.h'
------------^
/tmp/ifortVCXhzJ.i90(757): catastrophic error: Too many errors, exiting

but this file exists, in the build directory:

$ find . -name "zmumps*.h"
./_deps/mumps_proj-src/include/zmumps_c.h
./_deps/mumps_proj-src/include/zmumps_root.h
./_deps/mumps_proj-src/include/zmumps_struc.h
./_deps/mumps_proj-src/src/zmumps_gpu.h

Could you help, please?

Thanks in advance

Find Lapack

hello

I'm using mingw, i compiled openblas and install it under /opt
But cmake can't find lapack, is there a way to set the root folder of openblas ?
best regards.

Creating a Shared Library

Hello,

When I try to use -DBUILD_SHARED_LIBS=on when using Intel compilers on Windows, I receive the following link errors:

[870/887] Linking Fortran shared library src\cmumps.dll
FAILED: src/cmumps.dll src/cmumps.lib
cmd.exe /C "cmd.exe /C ""C:\Program Files\CMake\bin\cmake.exe" -E __create_def C:\Tools\MUMPS\build\src\CMakeFiles\cmumps.dir.\exports.def C:\Tools\MUMPS\build\src\CMakeFiles\cmumps.dir.\exports.def.objs && cd C:\Tools\MUMPS\build" && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_dll --intdir=src\CMakeFiles\cmumps.dir --rc=C:\PROGRA2\WI3CF21\10\bin\10.0.18362.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\10.0.18362.0\x64\mt.exe --manifests -- xilink /nologo src\CMakeFiles\cmumps.dir\mumps_c.c.obj src\CMakeFiles\cmumps.dir\cana_aux.F.obj src\CMakeFiles\cmumps.dir\cana_aux_par.F.obj src\CMakeFiles\cmumps.dir\cana_lr.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_master_ELT_m.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_master_m.F.obj src\CMakeFiles\cmumps.dir\cfac_front_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LU_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LU_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LDLT_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LDLT_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_front_type2_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_sispointers_m.F.obj src\CMakeFiles\cmumps.dir\cfac_lr.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_dynamic.F.obj src\CMakeFiles\cmumps.dir\cfac_omp_m.F.obj src\CMakeFiles\cmumps.dir\cfac_par_m.F.obj src\CMakeFiles\cmumps.dir\cfac_sol_l0omp_m.F.obj src\CMakeFiles\cmumps.dir\clr_core.F.obj src\CMakeFiles\cmumps.dir\clr_stats.F.obj src\CMakeFiles\cmumps.dir\clr_type.F.obj src\CMakeFiles\cmumps.dir\cmumps_comm_buffer.F.obj src\CMakeFiles\cmumps.dir\cmumps_config_file.F.obj src\CMakeFiles\cmumps.dir\cmumps_load.F.obj src\CMakeFiles\cmumps.dir\cmumps_lr_data_m.F.obj src\CMakeFiles\cmumps.dir\cmumps_ooc_buffer.F.obj src\CMakeFiles\cmumps.dir\cmumps_ooc.F.obj src\CMakeFiles\cmumps.dir\cmumps_sol_es.F.obj src\CMakeFiles\cmumps.dir\cmumps_save_restore.F.obj src\CMakeFiles\cmumps.dir\cmumps_save_restore_files.F.obj src\CMakeFiles\cmumps.dir\cmumps_struc_def.F.obj src\CMakeFiles\cmumps.dir\comp_tps_m.F.obj src\CMakeFiles\cmumps.dir\csol_lr.F.obj src\CMakeFiles\cmumps.dir\csol_omp_m.F.obj src\CMakeFiles\cmumps.dir\cstatic_ptr_m.F.obj src\CMakeFiles\cmumps.dir\cini_driver.F.obj src\CMakeFiles\cmumps.dir\cana_driver.F.obj src\CMakeFiles\cmumps.dir\cfac_driver.F.obj src\CMakeFiles\cmumps.dir\csol_driver.F.obj src\CMakeFiles\cmumps.dir\csol_distrhs.F.obj src\CMakeFiles\cmumps.dir\cend_driver.F.obj src\CMakeFiles\cmumps.dir\cana_aux_ELT.F.obj src\CMakeFiles\cmumps.dir\cana_dist_m.F.obj src\CMakeFiles\cmumps.dir\cana_LDLT_preprocess.F.obj src\CMakeFiles\cmumps.dir\cana_reordertree.F.obj src\CMakeFiles\cmumps.dir\carrowheads.F.obj src\CMakeFiles\cmumps.dir\cbcast_int.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_ELT.F.obj src\CMakeFiles\cmumps.dir\cfac_asm.F.obj src\CMakeFiles\cmumps.dir\cfac_b.F.obj src\CMakeFiles\cmumps.dir\cfac_distrib_distentry.F.obj src\CMakeFiles\cmumps.dir\cfac_distrib_ELT.F.obj src\CMakeFiles\cmumps.dir\cfac_lastrtnelind.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_alloc_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_compress_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_free_block_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_stack_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_stack.F.obj src\CMakeFiles\cmumps.dir\cfac_process_band.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blfac_slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blocfacto_LDLT.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blocfacto.F.obj src\CMakeFiles\cmumps.dir\cfac_process_bf.F.obj src\CMakeFiles\cmumps.dir\cfac_process_end_facto_slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type3.F.obj src\CMakeFiles\cmumps.dir\cfac_process_maprow.F.obj src\CMakeFiles\cmumps.dir\cfac_process_master2.F.obj src\CMakeFiles\cmumps.dir\cfac_process_message.F.obj src\CMakeFiles\cmumps.dir\cfac_process_root2slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_root2son.F.obj src\CMakeFiles\cmumps.dir\cfac_process_rtnelind.F.obj src\CMakeFiles\cmumps.dir\cfac_root_parallel.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings.F.obj src\CMakeFiles\cmumps.dir\cfac_determinant.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings_simScaleAbs.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings_simScale_util.F.obj src\CMakeFiles\cmumps.dir\cfac_sol_pool.F.obj src\CMakeFiles\cmumps.dir\cfac_type3_symmetrize.F.obj src\CMakeFiles\cmumps.dir\cini_defaults.F.obj src\CMakeFiles\cmumps.dir\cmumps_driver.F.obj src\CMakeFiles\cmumps.dir\cmumps_f77.F.obj src\CMakeFiles\cmumps.dir\cmumps_gpu.c.obj src\CMakeFiles\cmumps.dir\cmumps_iXamax.F.obj src\CMakeFiles\cmumps.dir\cana_mtrans.F.obj src\CMakeFiles\cmumps.dir\cooc_panel_piv.F.obj src\CMakeFiles\cmumps.dir\crank_revealing.F.obj src\CMakeFiles\cmumps.dir\csol_aux.F.obj src\CMakeFiles\cmumps.dir\csol_bwd_aux.F.obj src\CMakeFiles\cmumps.dir\csol_bwd.F.obj src\CMakeFiles\cmumps.dir\csol_c.F.obj src\CMakeFiles\cmumps.dir\csol_fwd_aux.F.obj src\CMakeFiles\cmumps.dir\csol_fwd.F.obj src\CMakeFiles\cmumps.dir\csol_matvec.F.obj src\CMakeFiles\cmumps.dir\csol_root_parallel.F.obj src\CMakeFiles\cmumps.dir\ctools.F.obj src\CMakeFiles\cmumps.dir\ctype3_root.F.obj /out:src\cmumps.dll /implib:src\cmumps.lib /pdb:src\cmumps.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO /DEF:src\CMakeFiles\cmumps.dir.\exports.def src\mumps_common.lib PORD\pord.lib "C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_scalapack_lp64.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_blacs_intelmpi_lp64.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_intel_lp64.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_sequential.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_core.lib" "C:\Tools\Microsoft MPI\SDK\Lib\x64\msmpifec.lib" "C:\Tools\Microsoft MPI\SDK\Lib\x64\msmpi.lib" user32.lib && cd ."
LINK: command "xilink /nologo src\CMakeFiles\cmumps.dir\mumps_c.c.obj src\CMakeFiles\cmumps.dir\cana_aux.F.obj src\CMakeFiles\cmumps.dir\cana_aux_par.F.obj src\CMakeFiles\cmumps.dir\cana_lr.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_master_ELT_m.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_master_m.F.obj src\CMakeFiles\cmumps.dir\cfac_front_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LU_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LU_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LDLT_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_front_LDLT_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_front_type2_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_sispointers_m.F.obj src\CMakeFiles\cmumps.dir\cfac_lr.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_dynamic.F.obj src\CMakeFiles\cmumps.dir\cfac_omp_m.F.obj src\CMakeFiles\cmumps.dir\cfac_par_m.F.obj src\CMakeFiles\cmumps.dir\cfac_sol_l0omp_m.F.obj src\CMakeFiles\cmumps.dir\clr_core.F.obj src\CMakeFiles\cmumps.dir\clr_stats.F.obj src\CMakeFiles\cmumps.dir\clr_type.F.obj src\CMakeFiles\cmumps.dir\cmumps_comm_buffer.F.obj src\CMakeFiles\cmumps.dir\cmumps_config_file.F.obj src\CMakeFiles\cmumps.dir\cmumps_load.F.obj src\CMakeFiles\cmumps.dir\cmumps_lr_data_m.F.obj src\CMakeFiles\cmumps.dir\cmumps_ooc_buffer.F.obj src\CMakeFiles\cmumps.dir\cmumps_ooc.F.obj src\CMakeFiles\cmumps.dir\cmumps_sol_es.F.obj src\CMakeFiles\cmumps.dir\cmumps_save_restore.F.obj src\CMakeFiles\cmumps.dir\cmumps_save_restore_files.F.obj src\CMakeFiles\cmumps.dir\cmumps_struc_def.F.obj src\CMakeFiles\cmumps.dir\comp_tps_m.F.obj src\CMakeFiles\cmumps.dir\csol_lr.F.obj src\CMakeFiles\cmumps.dir\csol_omp_m.F.obj src\CMakeFiles\cmumps.dir\cstatic_ptr_m.F.obj src\CMakeFiles\cmumps.dir\cini_driver.F.obj src\CMakeFiles\cmumps.dir\cana_driver.F.obj src\CMakeFiles\cmumps.dir\cfac_driver.F.obj src\CMakeFiles\cmumps.dir\csol_driver.F.obj src\CMakeFiles\cmumps.dir\csol_distrhs.F.obj src\CMakeFiles\cmumps.dir\cend_driver.F.obj src\CMakeFiles\cmumps.dir\cana_aux_ELT.F.obj src\CMakeFiles\cmumps.dir\cana_dist_m.F.obj src\CMakeFiles\cmumps.dir\cana_LDLT_preprocess.F.obj src\CMakeFiles\cmumps.dir\cana_reordertree.F.obj src\CMakeFiles\cmumps.dir\carrowheads.F.obj src\CMakeFiles\cmumps.dir\cbcast_int.F.obj src\CMakeFiles\cmumps.dir\cfac_asm_ELT.F.obj src\CMakeFiles\cmumps.dir\cfac_asm.F.obj src\CMakeFiles\cmumps.dir\cfac_b.F.obj src\CMakeFiles\cmumps.dir\cfac_distrib_distentry.F.obj src\CMakeFiles\cmumps.dir\cfac_distrib_ELT.F.obj src\CMakeFiles\cmumps.dir\cfac_lastrtnelind.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_alloc_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_compress_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_free_block_cb.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_stack_aux.F.obj src\CMakeFiles\cmumps.dir\cfac_mem_stack.F.obj src\CMakeFiles\cmumps.dir\cfac_process_band.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blfac_slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blocfacto_LDLT.F.obj src\CMakeFiles\cmumps.dir\cfac_process_blocfacto.F.obj src\CMakeFiles\cmumps.dir\cfac_process_bf.F.obj src\CMakeFiles\cmumps.dir\cfac_process_end_facto_slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type1.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type2.F.obj src\CMakeFiles\cmumps.dir\cfac_process_contrib_type3.F.obj src\CMakeFiles\cmumps.dir\cfac_process_maprow.F.obj src\CMakeFiles\cmumps.dir\cfac_process_master2.F.obj src\CMakeFiles\cmumps.dir\cfac_process_message.F.obj src\CMakeFiles\cmumps.dir\cfac_process_root2slave.F.obj src\CMakeFiles\cmumps.dir\cfac_process_root2son.F.obj src\CMakeFiles\cmumps.dir\cfac_process_rtnelind.F.obj src\CMakeFiles\cmumps.dir\cfac_root_parallel.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings.F.obj src\CMakeFiles\cmumps.dir\cfac_determinant.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings_simScaleAbs.F.obj src\CMakeFiles\cmumps.dir\cfac_scalings_simScale_util.F.obj src\CMakeFiles\cmumps.dir\cfac_sol_pool.F.obj src\CMakeFiles\cmumps.dir\cfac_type3_symmetrize.F.obj src\CMakeFiles\cmumps.dir\cini_defaults.F.obj src\CMakeFiles\cmumps.dir\cmumps_driver.F.obj src\CMakeFiles\cmumps.dir\cmumps_f77.F.obj src\CMakeFiles\cmumps.dir\cmumps_gpu.c.obj src\CMakeFiles\cmumps.dir\cmumps_iXamax.F.obj src\CMakeFiles\cmumps.dir\cana_mtrans.F.obj src\CMakeFiles\cmumps.dir\cooc_panel_piv.F.obj src\CMakeFiles\cmumps.dir\crank_revealing.F.obj src\CMakeFiles\cmumps.dir\csol_aux.F.obj src\CMakeFiles\cmumps.dir\csol_bwd_aux.F.obj src\CMakeFiles\cmumps.dir\csol_bwd.F.obj src\CMakeFiles\cmumps.dir\csol_c.F.obj src\CMakeFiles\cmumps.dir\csol_fwd_aux.F.obj src\CMakeFiles\cmumps.dir\csol_fwd.F.obj src\CMakeFiles\cmumps.dir\csol_matvec.F.obj src\CMakeFiles\cmumps.dir\csol_root_parallel.F.obj src\CMakeFiles\cmumps.dir\ctools.F.obj src\CMakeFiles\cmumps.dir\ctype3_root.F.obj /out:src\cmumps.dll /implib:src\cmumps.lib /pdb:src\cmumps.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO /DEF:src\CMakeFiles\cmumps.dir.\exports.def src\mumps_common.lib PORD\pord.lib C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_scalapack_lp64.lib C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_blacs_intelmpi_lp64.lib C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_intel_lp64.lib C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_sequential.lib C:\Program Files (x86)\Intel\oneAPI\mkl\latest\lib\intel64\mkl_core.lib C:\Tools\Microsoft MPI\SDK\Lib\x64\msmpifec.lib C:\Tools\Microsoft MPI\SDK\Lib\x64\msmpi.lib user32.lib /MANIFEST /MANIFESTFILE:src\cmumps.dll.manifest" failed (exit code 1120) with the following output:
Creating library src\cmumps.lib and object src\cmumps.exp
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
cooc_panel_piv.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
csol_bwd_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
csol_fwd_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
cfac_front_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
cfac_front_LU_type1.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
cfac_front_LU_type2.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_U
ctools.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_process_blocfacto.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cooc_panel_piv.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
csol_bwd_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
csol_fwd_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_par_m.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cmumps_ooc_buffer.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_process_blocfacto_LDLT.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_front_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_front_LDLT_type1.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_front_LDLT_type2.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cfac_front_type2_aux.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_L
cmumps_load.F.obj : error LNK2019: unresolved external symbol MUMPS_FUTURE_NIV2_mp_FUTURE_NIV2 referenced in function CMUMPS_LOAD_mp_CMUMPS_LOAD_UPDATE
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_ERR_STR_OOC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_ERR_STR_OOC
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_DIM_ERR_STR_OOC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_DIM_ERR_STR_OOC
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_MYID_OOC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_MYID_OOC
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_ICNTL1 referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_ICNTL1
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_LOW_LEVEL_STRAT_IO referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_LOW_LEVEL_STRAT_IO
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_VADDR referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_VADDR
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_STEP_OOC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_STEP_OOC
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_INODE_SEQUENCE referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_DO_IO_AND_CHBUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_INODE_SEQUENCE
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_NB_FILE_TYPE referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_BUF_CLEAN_PENDING
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_NB_FILE_TYPE
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_ADDVIRTLIBRE referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_END_OOC_BUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_ADDVIRTLIBRE
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_HBUF_SIZE referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_COPY_DATA_TO_BUFFER
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_HBUF_SIZE
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_STRAT_IO_ASYNC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_INIT_DB_BUFFER_PANEL
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_STRAT_IO_ASYNC
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_DIM_BUF_IO referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_OOC_INIT_DB_BUFFER_PANEL
cmumps_ooc_buffer.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_KEEP_OOC referenced in function CMUMPS_OOC_BUFFER_mp_CMUMPS_INIT_OOC_BUF
cmumps_ooc.F.obj : error LNK2001: unresolved external symbol MUMPS_OOC_COMMON_mp_KEEP_OOC
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_OOC_FCT_TYPE referenced in function CMUMPS_OOC_mp_CMUMPS_IS_THERE_FREE_SPACE
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_WITH_BUF referenced in function CMUMPS_OOC_mp_CMUMPS_NEW_FACTOR
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_PROCNODE_OOC referenced in function CMUMPS_OOC_mp_CMUMPS_OOC_END_FACTO
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_SLAVEF_OOC referenced in function CMUMPS_OOC_mp_CMUMPS_OOC_INIT_SOLVE
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_TYPEF_CB referenced in function CMUMPS_OOC_mp_CMUMPS_OOC_INIT_SOLVE
cmumps_ooc.F.obj : error LNK2019: unresolved external symbol MUMPS_OOC_COMMON_mp_SOLVE referenced in function CMUMPS_OOC_mp_CMUMPS_OOC_INIT_SOLVE
cfac_process_band.F.obj : error LNK2019: unresolved external symbol MUMPS_FAC_DESCBAND_DATA_M_mp_INODE_WAITED_FOR referenced in function CMUMPS_PROCESS_DESC_BANDE
src\cmumps.dll : fatal error LNK1120: 24 unresolved externals
[873/887] Building Fortran object src\CMakeFiles\zmumps.dir\zmumps_save_restore.F.obj
ninja: build stopped: subcommand failed.

I imagine these symbols are supposed to be in mumps_common.dll/mumps_common.lib. When I run dumpbin /exports mumps_common.lib I see that some of the unresolved symbols above are in mumps_common.lib but others aren't. Any ideas on how to build a shared library in this context?

P.S.: It is possible to build a shared library using MSYS2 and Mingw64 on Windows by specifying -DCMAKE_GNUtoMS=on -DBUILD_SHARED_LIBS=on but I can't use this approach because of an unrelated bug with gfortran and MSMPI.

Thanks.

Build failed on Windows+Intel oneAPI

System:

Windows 10, VS 2019, Intel oneAPI 2022, lastest master branch

Command line used:

cmake -B build -G Ninja -DCMAKE_C_COMPILER=cl -Dparallel=false

Error:

CMake Error at CMakeLists.txt:69 (add_subdirectory):
add_subdirectory given source "/libseq" which is not an existing directory.

CMake can not determine linker language for target: mumpscfg

-- The C compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/mingw64/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- MUMPS 5.6.2.2 upstream 5.6.2 install prefix: C:/repo/mumps-5.6.2.2/build/local
-- CMake 3.28.0 Toolchain
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found MPI_C: C:/Program Files (x86)/Microsoft SDKs/MPI/Lib/x64/msmpi.lib (found version "2.0")
-- Found MPI: TRUE (found version "2.0") found components: C
-- MKL_VERSION: 2024.0.0
-- MKL_ROOT: C:/Program Files (x86)/Intel/oneAPI/mkl/latest
-- MKL_ARCH: None, set to intel64 by default
-- MKL_LINK: None, set to dynamic by default
-- MKL_INTERFACE_FULL: intel_lp64
-- MKL_THREADING: None, set to intel_thread by default
-- MKL_MPI: None, set to intelmpi by default
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_scalapack_lp64_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_scalapack_lp64.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_intel_lp64_dll.lib
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_intel_thread_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_intel_thread.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_core_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_core.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_blacs_lp64_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_blacs_lp64.2.dll
CMake Warning at cmake/FindSCALAPACK.cmake:135 (find_package):
Found package configuration file:

C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/cmake/mkl/MKLConfig.cmake

but it set MKL_FOUND to FALSE so package "MKL" is considered to be NOT
FOUND. Reason given by package:

The required variable OMP_DLL_DIR has an invalid value
"OMP_DLL_DIR-NOTFOUND".

Call Stack (most recent call first):
cmake/FindSCALAPACK.cmake:208 (scalapack_mkl)
cmake/scalapack.cmake:20 (find_package)
CMakeLists.txt:52 (include)

-- MUMPS ORDERING_DEFS: pord
-- MUMPS ORDERING_LIBS: pord
-- Populating mumps
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: C:/repo/mumps-5.6.2.2/build/_deps/mumps-subbuild
-- Downloading...
dst='C:/repo/mumps-5.6.2.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
timeout='none'
inactivity timeout='60 seconds'
-- Using src='https://mumps-solver.org/MUMPS_5.6.2.tar.gz'
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
-- [download 3% complete]
-- [download 4% complete]
-- [download 5% complete]
-- [download 6% complete]
-- [download 7% complete]
-- [download 8% complete]
-- [download 9% complete]
-- [download 10% complete]
-- [download 11% complete]
-- [download 12% complete]
-- [download 13% complete]
-- [download 14% complete]
-- [download 15% complete]
-- [download 16% complete]
-- [download 17% complete]
-- [download 18% complete]
-- [download 19% complete]
-- [download 20% complete]
-- [download 21% complete]
-- [download 22% complete]
-- [download 23% complete]
-- [download 24% complete]
-- [download 25% complete]
-- [download 26% complete]
-- [download 27% complete]
-- [download 28% complete]
-- [download 29% complete]
-- [download 30% complete]
-- [download 31% complete]
-- [download 32% complete]
-- [download 33% complete]
-- [download 34% complete]
-- [download 35% complete]
-- [download 36% complete]
-- [download 37% complete]
-- [download 38% complete]
-- [download 39% complete]
-- [download 40% complete]
-- [download 41% complete]
-- [download 42% complete]
-- [download 43% complete]
-- [download 44% complete]
-- [download 45% complete]
-- [download 46% complete]
-- [download 47% complete]
-- [download 48% complete]
-- [download 49% complete]
-- [download 50% complete]
-- [download 51% complete]
-- [download 52% complete]
-- [download 53% complete]
-- [download 54% complete]
-- [download 55% complete]
-- [download 56% complete]
-- [download 57% complete]
-- [download 58% complete]
-- [download 59% complete]
-- [download 60% complete]
-- [download 61% complete]
-- [download 62% complete]
-- [download 63% complete]
-- [download 64% complete]
-- [download 65% complete]
-- [download 66% complete]
-- [download 67% complete]
-- [download 68% complete]
-- [download 69% complete]
-- [download 70% complete]
-- [download 71% complete]
-- [download 72% complete]
-- [download 73% complete]
-- [download 74% complete]
-- [download 75% complete]
-- [download 76% complete]
-- [download 77% complete]
-- [download 78% complete]
-- [download 79% complete]
-- [download 80% complete]
-- [download 81% complete]
-- [download 82% complete]
-- [download 83% complete]
-- [download 84% complete]
-- [download 85% complete]
-- [download 86% complete]
-- [download 87% complete]
-- [download 88% complete]
-- [download 89% complete]
-- [download 90% complete]
-- [download 91% complete]
-- [download 92% complete]
-- [download 93% complete]
-- [download 94% complete]
-- [download 95% complete]
-- [download 96% complete]
-- [download 97% complete]
-- [download 98% complete]
-- [download 99% complete]
-- [download 100% complete]
-- verifying file...
file='C:/repo/mumps-5.6.2.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
-- Downloading... done
-- extracting...
src='C:/repo/mumps-5.6.2.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
dst='C:/repo/mumps-5.6.2.2/build/_deps/mumps-src'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[1/9] Creating directories for 'mumps-populate'
[1/9] Performing download step (download, verify and extract) for 'mumps-populate'
[2/9] No update_disconnected step for 'mumps-populate'
[3/9] No patch_disconnected step for 'mumps-populate'
[5/9] No configure step for 'mumps-populate'
[6/9] No build step for 'mumps-populate'
[7/9] No install step for 'mumps-populate'
[8/9] No test step for 'mumps-populate'
[9/9] Completed 'mumps-populate'
-- Configured MUMPS 5.6.2 source in C:/repo/mumps-5.6.2.2/build/_deps/mumps-src
-- The following features have been enabled:

  • Parallel, parallel MUMPS (using MPI and Scalapack)
  • real32, Build with single precision
  • real64, Build with double precision

-- The following features have been disabled:

-- Configuring done (13.8s)
CMake Error: CMake can not determine linker language for target: mumpscfg
CMake Error: CMake can not determine linker language for target: s_simple
CMake Error: CMake can not determine linker language for target: d_simple
CMake Error in test/CMakeLists.txt:
Imported target "MUMPS::MUMPS" includes non-existent path

"C:/repo/mumps-5.6.2.2/build/include"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

CMake Error at cmake/mumps.cmake:113 (target_link_libraries):
Target "mumps_common" links to:

LAPACK::LAPACK

but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

Call Stack (most recent call first):
CMakeLists.txt:127 (include)

-- Generating done (0.1s)
CMake Generate step failed. Build files cannot be regenerated correctly.

Linking error with FetchContent

I was previously working with an older version of your library that I forked and patched (for my own usage), but I thought I'd give your latest version a shot. My old version still works but the latest version doesn't. When I try to integrate the MUMPS project into my own using FetchContent, I encounter what appears to be a linking error (output provided below) at build time. Have you encountered this issue yourself at all, or know how to fix it?

For reference, I'm working on macOS and using a Clang compiler.

Thanks!

FAILED: _deps/mumps_project-build/tests/d_simple 
: && /usr/local/bin/gfortran -Wl,-flat_namespace -Wl,-commons,use_dylibs -L/usr/local/Cellar/libevent/2.1.12/lib -L/usr/local/Cellar/libevent/2.1.12/lib -fimplicit-none -fallow-argument-mismatch -fallow-invalid-boz -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.0.sdk _deps/mumps_project-build/tests/CMakeFiles/d_simple.dir/d_simple.f90.o -o _deps/mumps_project-build/tests/d_simple  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  _deps/mumps_project-build/libsmumpsd.a  _deps/mumps_project-build/libdmumpsd.a  _deps/mumps_project-build/libmumps_commond.a  /usr/local/lib/libscalapack.a  -lm  -ldl  -framework  Accelerate  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempif08.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempi_ignore_tkr.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_mpifh.dylib  _deps/mumps_project-build/libpordd.a  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib && :
Undefined symbols for architecture x86_64:
  "_Cblacs_abort", referenced from:
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cmalloc in libscalapack.a(PB_Cmalloc.c.o)
  "_Cblacs_gridinfo", referenced from:
      _pdtrsm_ in libscalapack.a(pdtrsm_.c.o)
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cchkmat in libscalapack.a(PB_Cchkmat.c.o)
      _PB_Cplapad in libscalapack.a(PB_Cplapad.c.o)
      _PB_CptrsmAB in libscalapack.a(PB_CptrsmAB.c.o)
      _PB_CptrsmB in libscalapack.a(PB_CptrsmB.c.o)
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
      ...
  "_Cblacs_pnum", referenced from:
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
  "_Cdgamx2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_Cdgebr2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgebs2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgerv2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgesd2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgsum2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
  "_Cigebr2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_Cigebs2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_blacs_abort_", referenced from:
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_blacs_gridexit_", referenced from:
      _dmumps_end_driver_ in libdmumpsd.a(dend_driver.F.o)
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
  "_blacs_gridinfo_", referenced from:
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
      _dmumps_root_solve_ in libdmumpsd.a(dsol_root_parallel.F.o)
      _descinit_ in libscalapack.a(descinit.f.o)
      _pdgetrs_ in libscalapack.a(pdgetrs.f.o)
      _pdpotrs_ in libscalapack.a(pdpotrs.f.o)
      _chk1mat_ in libscalapack.a(chk1mat.f.o)
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      ...
  "_blacs_gridinit_", referenced from:
      ___dmumps_save_restore_MOD_dmumps_save_restore_structure in libdmumpsd.a(dmumps_save_restore.F.o)
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
  "_igamn2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdgetrf_ in libscalapack.a(pdgetrf.f.o)
  "_igebr2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdlapiv_ in libscalapack.a(pdlapiv.f.o)
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdlapv2_ in libscalapack.a(pdlapv2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_igebs2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdlapiv_ in libscalapack.a(pdlapiv.f.o)
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdlapv2_ in libscalapack.a(pdlapv2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_igerv2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
  "_igesd2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
[3116/4063] Linking Fortran executable _deps/mumps_project-build/tests/mumpscfg
FAILED: _deps/mumps_project-build/tests/mumpscfg 
: && /usr/local/bin/gfortran -Wl,-flat_namespace -Wl,-commons,use_dylibs -L/usr/local/Cellar/libevent/2.1.12/lib -L/usr/local/Cellar/libevent/2.1.12/lib -fimplicit-none -fallow-argument-mismatch -fallow-invalid-boz -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.0.sdk _deps/mumps_project-build/tests/CMakeFiles/mumpscfg.dir/test_mumps.f90.o -o _deps/mumps_project-build/tests/mumpscfg  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  _deps/mumps_project-build/libsmumpsd.a  _deps/mumps_project-build/libdmumpsd.a  _deps/mumps_project-build/libmumps_commond.a  /usr/local/lib/libscalapack.a  -lm  -ldl  -framework  Accelerate  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempif08.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempi_ignore_tkr.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_mpifh.dylib  _deps/mumps_project-build/libpordd.a  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib && :
Undefined symbols for architecture x86_64:
  "_Cblacs_abort", referenced from:
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cmalloc in libscalapack.a(PB_Cmalloc.c.o)
  "_Cblacs_gridinfo", referenced from:
      _pdtrsm_ in libscalapack.a(pdtrsm_.c.o)
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cchkmat in libscalapack.a(PB_Cchkmat.c.o)
      _PB_Cplapad in libscalapack.a(PB_Cplapad.c.o)
      _PB_CptrsmAB in libscalapack.a(PB_CptrsmAB.c.o)
      _PB_CptrsmB in libscalapack.a(PB_CptrsmB.c.o)
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
      ...
  "_Cblacs_pnum", referenced from:
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
  "_Cdgamx2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_Cdgebr2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgebs2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgerv2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgesd2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
      _pdamax_ in libscalapack.a(pdamax_.c.o)
      _pdswap_ in libscalapack.a(pdswap_.c.o)
  "_Cdgsum2d", referenced from:
      _PB_Cdtypeset in libscalapack.a(PB_Cdtypeset.c.o)
  "_Cigebr2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_Cigebs2d", referenced from:
      _pdamax_ in libscalapack.a(pdamax_.c.o)
  "_blacs_abort_", referenced from:
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_blacs_gridexit_", referenced from:
      _dmumps_end_driver_ in libdmumpsd.a(dend_driver.F.o)
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
  "_blacs_gridinfo_", referenced from:
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
      _dmumps_root_solve_ in libdmumpsd.a(dsol_root_parallel.F.o)
      _descinit_ in libscalapack.a(descinit.f.o)
      _pdgetrs_ in libscalapack.a(pdgetrs.f.o)
      _pdpotrs_ in libscalapack.a(pdpotrs.f.o)
      _chk1mat_ in libscalapack.a(chk1mat.f.o)
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      ...
  "_blacs_gridinit_", referenced from:
      ___dmumps_save_restore_MOD_dmumps_save_restore_structure in libdmumpsd.a(dmumps_save_restore.F.o)
      _dmumps_init_root_ana_ in libdmumpsd.a(dtype3_root.F.o)
  "_igamn2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdgetrf_ in libscalapack.a(pdgetrf.f.o)
  "_igebr2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdlapiv_ in libscalapack.a(pdlapiv.f.o)
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdlapv2_ in libscalapack.a(pdlapv2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_igebs2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pdlapiv_ in libscalapack.a(pdlapiv.f.o)
      _pdgetf2_ in libscalapack.a(pdgetf2.f.o)
      _pdlapv2_ in libscalapack.a(pdlapv2.f.o)
      _pdpotf2_ in libscalapack.a(pdpotf2.f.o)
  "_igerv2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
  "_igesd2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
[3117/4063] Linking Fortran executable _deps/mumps_project-build/tests/s_simple
FAILED: _deps/mumps_project-build/tests/s_simple 
: && /usr/local/bin/gfortran -Wl,-flat_namespace -Wl,-commons,use_dylibs -L/usr/local/Cellar/libevent/2.1.12/lib -L/usr/local/Cellar/libevent/2.1.12/lib -fimplicit-none -fallow-argument-mismatch -fallow-invalid-boz -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.0.sdk _deps/mumps_project-build/tests/CMakeFiles/s_simple.dir/s_simple.f90.o -o _deps/mumps_project-build/tests/s_simple  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib  _deps/mumps_project-build/libsmumpsd.a  _deps/mumps_project-build/libdmumpsd.a  _deps/mumps_project-build/libmumps_commond.a  /usr/local/lib/libscalapack.a  -lm  -ldl  -framework  Accelerate  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempif08.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_usempi_ignore_tkr.dylib  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi_mpifh.dylib  _deps/mumps_project-build/libpordd.a  /usr/local/Cellar/open-mpi/4.1.1_2/lib/libmpi.dylib && :
Undefined symbols for architecture x86_64:
  "_Cblacs_abort", referenced from:
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cmalloc in libscalapack.a(PB_Cmalloc.c.o)
  "_Cblacs_gridinfo", referenced from:
      _pstrsm_ in libscalapack.a(pstrsm_.c.o)
      _PB_Cabort in libscalapack.a(PB_Cabort.c.o)
      _PB_Cchkmat in libscalapack.a(PB_Cchkmat.c.o)
      _PB_Cplapad in libscalapack.a(PB_Cplapad.c.o)
      _PB_CptrsmAB in libscalapack.a(PB_CptrsmAB.c.o)
      _PB_CptrsmB in libscalapack.a(PB_CptrsmB.c.o)
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
      ...
  "_Cblacs_pnum", referenced from:
      _PB_Cwarn in libscalapack.a(PB_Cwarn.c.o)
  "_Cigebr2d", referenced from:
      _psamax_ in libscalapack.a(psamax_.c.o)
  "_Cigebs2d", referenced from:
      _psamax_ in libscalapack.a(psamax_.c.o)
  "_Csgamx2d", referenced from:
      _psamax_ in libscalapack.a(psamax_.c.o)
  "_Csgebr2d", referenced from:
      _PB_Cstypeset in libscalapack.a(PB_Cstypeset.c.o)
      _psamax_ in libscalapack.a(psamax_.c.o)
      _psswap_ in libscalapack.a(psswap_.c.o)
  "_Csgebs2d", referenced from:
      _PB_Cstypeset in libscalapack.a(PB_Cstypeset.c.o)
      _psamax_ in libscalapack.a(psamax_.c.o)
      _psswap_ in libscalapack.a(psswap_.c.o)
  "_Csgerv2d", referenced from:
      _PB_Cstypeset in libscalapack.a(PB_Cstypeset.c.o)
      _psamax_ in libscalapack.a(psamax_.c.o)
      _psswap_ in libscalapack.a(psswap_.c.o)
  "_Csgesd2d", referenced from:
      _PB_Cstypeset in libscalapack.a(PB_Cstypeset.c.o)
      _psamax_ in libscalapack.a(psamax_.c.o)
      _psswap_ in libscalapack.a(psswap_.c.o)
  "_Csgsum2d", referenced from:
      _PB_Cstypeset in libscalapack.a(PB_Cstypeset.c.o)
  "_blacs_abort_", referenced from:
      _psgetf2_ in libscalapack.a(psgetf2.f.o)
      _pspotf2_ in libscalapack.a(pspotf2.f.o)
  "_blacs_gridexit_", referenced from:
      _smumps_end_driver_ in libsmumpsd.a(send_driver.F.o)
      _smumps_init_root_ana_ in libsmumpsd.a(stype3_root.F.o)
  "_blacs_gridinfo_", referenced from:
      _smumps_init_root_ana_ in libsmumpsd.a(stype3_root.F.o)
      _smumps_root_solve_ in libsmumpsd.a(ssol_root_parallel.F.o)
      _descinit_ in libscalapack.a(descinit.f.o)
      _psgetrs_ in libscalapack.a(psgetrs.f.o)
      _pspotrs_ in libscalapack.a(pspotrs.f.o)
      _chk1mat_ in libscalapack.a(chk1mat.f.o)
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      ...
  "_blacs_gridinit_", referenced from:
      ___smumps_save_restore_MOD_smumps_save_restore_structure in libsmumpsd.a(smumps_save_restore.F.o)
      _smumps_init_root_ana_ in libsmumpsd.a(stype3_root.F.o)
  "_igamn2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _psgetrf_ in libscalapack.a(psgetrf.f.o)
  "_igebr2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pslapiv_ in libscalapack.a(pslapiv.f.o)
      _psgetf2_ in libscalapack.a(psgetf2.f.o)
      _pslapv2_ in libscalapack.a(pslapv2.f.o)
      _pspotf2_ in libscalapack.a(pspotf2.f.o)
  "_igebs2d_", referenced from:
      _globchk_ in libscalapack.a(pchkxmat.f.o)
      _pslapiv_ in libscalapack.a(pslapiv.f.o)
      _psgetf2_ in libscalapack.a(psgetf2.f.o)
      _pslapv2_ in libscalapack.a(pslapv2.f.o)
      _pspotf2_ in libscalapack.a(pspotf2.f.o)
  "_igerv2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
  "_igesd2d_", referenced from:
      _picol2row_ in libscalapack.a(picol2row.f.o)
      _pirow2col_ in libscalapack.a(pirow2col.f.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
[3118/4063] Building Fortran object external_src/oomph_flapack/CMakeFiles/oomph_flapack.dir/stzrzf.f.o
ninja: build stopped: subcommand failed.

Build fails on Windows

CMake Error at cmake/mumps.cmake:113 (target_link_libraries):
Target "mumps_common" links to:

LAPACK::LAPACK

but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

Call Stack (most recent call first):
CMakeLists.txt:131 (include)

-- Generating done (0.3s)
CMake Generate step failed. Build files cannot be regenerated correctly.

Linker Errors in Windows (intel toolchain with msvc)

Hi all,
I've been trying to compile mumps v5.3.3.7 with the intel toolchain on Windows using cmake, but I'm getting linker errors when I'm trying to compile the c_example.c (that's under the example folder). (NOTE: All is done in the intel specific cmd with msvc2019 integration)

I first run:

cmake -B build -Wdev -G"Visual Studio 16 2019" -T"Intel C++ Compiler 19.1" -DCMAKE_INSTALL_PREFIX=C:/Users/koutoui/Documents/mumps/ -Darith=d -Dparallel=false

that outputs:

-- The C compiler identification is Intel 19.1.0.20200306
-- The Fortran compiler identification is Intel 19.1.0.20200306
-- Check for working C compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe
-- Check for working C compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working Fortran compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe
-- Check for working Fortran compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe  -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Determine Intel Fortran Compiler Implicit Link Path
-- Determine Intel Fortran Compiler Implicit Link Path -- done
-- Checking whether C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe supports Fortran 90
-- Checking whether C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020/windows/bin/intel64/icl.exe supports Fortran 90 -- yes
-- CMake 3.16.7
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Found LAPACK: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.1.216/windows/mkl/lib/intel64/mkl_intel_lp64.lib;C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.1.216/windows/mkl/lib/intel64/mkl_sequential.lib;C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.1.216/windows/mkl/lib/intel64/mkl_core.lib  found components: MKL
-- Performing Test LAPACK_real64_link
-- Performing Test LAPACK_real64_link - Success
KOUTOU--- a that was given is: d
-- Visual Studio programs linking Fortran and C code require special configuration, see:
-- https://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications
-- Consider using Ninja backend instead of VS backend if possible for your project.
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/build

which I then build like that:

cmake --build build --clean-first

which outputs:

Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  Checking Build System
  Building Custom Rule C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/libseq/CMakeLists.txt
icl: : warning #10159: invalid argument for option '/fp' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
icl: : warning #10006: ignoring unknown option '/libs:dll' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
icl: : warning #10006: ignoring unknown option '/threads' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
icl: : warning #10006: ignoring unknown option '/warn:declarations' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
icl: : warning #10006: ignoring unknown option '/heap-arrays' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
icl: : warning #10006: ignoring unknown option '/dbglibs' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\mpiseq.vcxproj]
  elapse.c
  mpic.c
  mpiseq.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\Debug\mpiseq.lib
  Building Custom Rule C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/PORD/CMakeLists.txt
  graph.c
  gbipart.c
  gbisect.c
  ddcreate.c
  ddbisect.c
  nestdiss.c
  multisector.c
  gelim.c
  bucket.c
  tree.c
  symbfac.c
  interface.c
  sort.c
  minpriority.c
  pord.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\PORD\Debug\pord.lib
  Building Custom Rule C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/src/CMakeLists.txt
icl: : warning #10159: invalid argument for option '/fp' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
icl: : warning #10006: ignoring unknown option '/libs:dll' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
icl: : warning #10006: ignoring unknown option '/threads' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
icl: : warning #10006: ignoring unknown option '/warn:declarations' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
icl: : warning #10006: ignoring unknown option '/heap-arrays' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
icl: : warning #10006: ignoring unknown option '/dbglibs' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\mumps_common.vcxproj]
  mumps_pord.c
  mumps_common.c
  mumps_size.c
  mumps_io.c
  mumps_io_basic.c
  mumps_io_thread.c
  mumps_io_err.c
  mumps_numa.c
  mumps_thread.c
  mumps_save_restore_C.c
  mumps_config_file_C.c
  mumps_thread_affinity.c
  mumps_common.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\Debug\mumps_common.lib
  Building Custom Rule C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/src/CMakeLists.txt
icl: : warning #10159: invalid argument for option '/fp' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
icl: : warning #10006: ignoring unknown option '/libs:dll' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
icl: : warning #10006: ignoring unknown option '/threads' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
icl: : warning #10006: ignoring unknown option '/warn:declarations' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
icl: : warning #10006: ignoring unknown option '/heap-arrays' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
icl: : warning #10006: ignoring unknown option '/dbglibs' [C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\dmumps.vcxproj]
  mumps_c.c
  dmumps_gpu.c
  dmumps.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\Debug\dmumps.lib
  Building Custom Rule C:/Users/koutoui/Documents/repos/mumps.git_2/tags/v5.3.3.7/CMakeLists.txt

And then I install it:

cmake --build build --target install

which outputs:

Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  mpiseq.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\libseq\Debug\mpiseq.lib
  pord.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\PORD\Debug\pord.lib
  mumps_common.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\Debug\mumps_common.lib
  dmumps.vcxproj -> C:\Users\koutoui\Documents\repos\mumps.git_2\tags\v5.3.3.7\build\src\Debug\dmumps.lib
  -- Install configuration: "Debug"
  -- Installing: C:/Users/koutoui/Documents/mumps/lib/mpiseq.lib
  -- Installing: C:/Users/koutoui/Documents/mumps/include/elapse.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/mpi.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/mpif.h
  -- Installing: C:/Users/koutoui/Documents/mumps/lib/pord.lib
  -- Installing: C:/Users/koutoui/Documents/mumps/lib/mumps_common.lib
  -- Installing: C:/Users/koutoui/Documents/mumps/lib/dmumps.lib
  -- Installing: C:/Users/koutoui/Documents/mumps/include/dmumps_c.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/dmumps_root.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/dmumps_struc.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/mumps_int_def.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/mumps_c_types.h
  -- Installing: C:/Users/koutoui/Documents/mumps/include/mumps_compat.h

But, when I try to compile the example (which I've changed a bit).

mpiicc -o ms mumps_test_src.cpp /I"C:/Users/koutoui/Documents/mumps/include" /LIBPATH:"C:/Users/koutoui/Documents/mumps/lib" dmumps.lib mumps_common.lib pord.lib mpiseq.lib

and I get:


mpicc.bat for the Intel(R) MPI Library 2019 Update 7 for Windows*
Copyright 2007-2020 Intel Corporation.

Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.1.216 Build 20200306
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

mumps_test_src.cpp
Microsoft (R) Incremental Linker Version 14.16.27043.0
Copyright (C) Microsoft Corporation.  All rights reserved.

-out:ms.exe
/LIBPATH:C:/Users/koutoui/Documents/mumps/lib
"/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.1.216\windows\mpi\intel64\bin\..\..\intel64\lib\release"
"/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.1.216\windows\mpi\intel64\bin\..\..\intel64\lib"
impi.lib
mumps_test_src.obj
dmumps.lib
mumps_common.lib
pord.lib
mpiseq.lib
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
dmumps.lib(mumps_c.obj) : warning LNK4217: locally defined symbol strncpy imported in function dmumps_c
dmumps.lib(mumps_c.obj) : error LNK2019: unresolved external symbol DMUMPS_SET_TMP_PTR referenced in function DMUMPS_SET_TMP_PTR_C
dmumps.lib(mumps_c.obj) : error LNK2019: unresolved external symbol DMUMPS_F77 referenced in function dmumps_c
ms.exe : fatal error LNK1120: 2 unresolved externals
ERROR in the compiling/linking [1120]

Which outputs a DMUMPS_SET_TMP_PTR and a DMUMPS_F77 linker error.
Could you point me in the right direction on how to fix that? (I'm not much of a windows expert).
Note: I've opened the visual studio solution to build it from there, since there was a url suggestion on your readme(https://software.intel.com/content/www/us/en/develop/articles/configuring-visual-studio-for-mixed-language-applications.html), but the IFORT_COMPILER/etc variables were already defined

Best Regards,
Ioannis

Find static MKL LAPACK and ScaLAPACK libraries on Linux

Dear Michael,

I am wondering how can I find and link static MKL LAPACK and ScaLAPACK libraries on Linux. These two modules actually find and link static lib on Windows.

I am now testing on Ubuntu 20.04 with oneAPI 2022.

Best,
Adam

Developer warnings

I have no idea what they mean, but running cmake -S . -B build inside the root directory of the repo yields these warnings (although everything seems to work otherwise)

-- Found LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so;/usr/lib/x86_64-linux-gnu/blas/libblas.so;-lpthread  found components: Netlib 
CMake Warning (dev) at /usr/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (MPI).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/share/cmake-3.21/Modules/FindPkgConfig.cmake:70 (find_package_handle_standard_args)
  /usr/share/cmake-3.21/Modules/FindMPI.cmake:270 (include)
  CMakeLists.txt:58 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found MPI_C: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so (found version "3.1") 
-- Found MPI_Fortran: /usr/lib/x86_64-linux-gnu/libmpi_usempif08.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1") found components: C Fortran 
-- Checking for one of the modules 'scalapack;scalapack-openmpi;scalapack-mpich'
CMake Warning (dev) at /usr/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (PkgConfig)
  does not match the name of the calling package (MPI).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/share/cmake-3.21/Modules/FindPkgConfig.cmake:70 (find_package_handle_standard_args)
  /usr/share/cmake-3.21/Modules/FindMPI.cmake:270 (include)
  cmake/Modules/FindSCALAPACK.cmake:64 (find_package)
  cmake/Modules/FindSCALAPACK.cmake:206 (scalapack_check)
  cmake/scalapack.cmake:20 (find_package)
  CMakeLists.txt:59 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

Just wanted to let you know. I'm on Linux and my cmake is cmake version 3.21.3.

64-bit integer use of MUMPS always meet INFO(1)=-3

Hi, I am trying to using 64 bit integer of MUMPS. I add -i8 to the compiler as below,

_mpiifort -O2 -xHost -nofor-main -DBLR_MT -qopenmp -c -i8 $filename.f90 -o $filename.o

mpiifort -o $filename -O2 -xHost -nofor-main -qopenmp $filename.o -lzmumps -lmumps_common -lmpi -lpord -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lparmetis -lmetis -lptesmumps -lptscotch -lptscotcherr -lscotch_

But it doesn't help. always meet errors like this, I really need your help. Do the others like Metis, SCOTCH shoule be installed with 64-bit integer? Could you give some details? thanks very much.

** ERROR RETURN ** FROM ZMUMPS INFO(1)= -3
** INFO(2)= 0
** ERROR RETURN ** FROM ZMUMPS INFO(1)= -3
** INFO(2)= 0
** ERROR RETURN ** FROM ZMUMPS INFO(1)= -3
** INFO(2)= 0
** ERROR RETURN ** FROM ZMUMPS INFO(1)= -3
** INFO(2)= 0
** ERROR RETURN ** FROM ZMUMPS INFO(1)= -3
** INFO(2)= 0
Abort(67706631) on node 2 (rank 2 in comm 0): Fatal error in PMPI_Bcast: Invalid root, error stack:
PMPI_Bcast(451): MPI_Bcast(buf=0x7fffdd81fd88, count=1, MPI_INTEGER, root=-1073741822, comm=comm=0x84000002) failed
PMPI_Bcast(412): Invalid root (value given was -1073741822)
Abort(134815495) on node 3 (rank 3 in comm 0): Fatal error in PMPI_Bcast: Invalid root, error stack:
PMPI_Bcast(451): MPI_Bcast(buf=0x7ffc093ad608, count=1, MPI_INTEGER, root=-1073741822, comm=comm=0x84000002) failed
PMPI_Bcast(412): Invalid root (value given was -1073741822)
Abort(671686407) on node 4 (rank 4 in comm 0): Fatal error in PMPI_Bcast: Invalid root, error stack:
PMPI_Bcast(451): MPI_Bcast(buf=0x7ffcf61d6808, count=1, MPI_INTEGER, root=-1073741822, comm=comm=0x84000002) failed
PMPI_Bcast(412): Invalid root (value given was -1073741822)
Abort(1007230727) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Bcast: Invalid root, error stack:
PMPI_Bcast(451): MPI_Bcast(buf=0x7ffe446fe808, count=1, MPI_INTEGER, root=-1073741822, comm=comm=0x84000003) failed
PMPI_Bcast(412): Invalid root (value given was -1073741822)
Abort(738795271) on node 1 (rank 1 in comm 0): Fatal error in PMPI_Bcast: Invalid root, error stack:
PMPI_Bcast(451): MPI_Bcast(buf=0x7ffe6bbeb588, count=1, MPI_INTEGER, root=-1073741822, comm=comm=0x84000002) failed
PMPI_Bcast(412): Invalid root (value given was -1073741822)

OneAPI & Visual Studio

Hi,
I'd like to compile mumps using oneAPI compiler under Visual Studio. To do so, i configure cmake -G "Visual Studio 17 2022" -A x64 -Dopenmp=true -Dparallel=false -B build using the oneAPI command line (in order to dect the fortran compiler). When it comes to the mumps visual studio solution, the project mumps_common failed to compile with the oneAPI compiler (a lot of fortran files are ignored also).
Does anybody already succed ?

Another related question : is there a way to set the oneAPI toolchain compilation in cmake ?

Best regards.

PS : I also tried to configure using Ninja mode but i get the same error when compiling.

Missing variable is: CMAKE_Fortran_PREPROCESS_SOURCE

PS C:\repo\mumps-5.6.2.2> cmake -G Ninja -B build
-- The C compiler identification is Clang 18.1.0
-- The Fortran compiler identification is unknown
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.0.2 Build 20231213
Copyright (C) 1985-2023 Intel Corporation. All rights reserved.

-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/llvm-mingw-20240306-ucrt-x86_64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working Fortran compiler: C:/Program Files (x86)/Intel/oneAPI/2024.0/bin/ifx.exe
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_Fortran_PREPROCESS_SOURCE
CMake Error at C:/cmake-3.25.3-windows-x86_64/share/cmake-3.29/Modules/CMakeTestFortranCompiler.cmake:49 (try_compile):
Failed to generate test project build system.
Call Stack (most recent call first):
CMakeLists.txt:16 (project)

-- Configuring incomplete, errors occurred!

Why not use CMake's natural way of finding BLAS/LAPACK

I am on Mac OS and compiled MUMPS with CMake no problem. However, it does recompile its own version of BLAS instead of using MKL as I have it installed.
Looking around, by simply changing:

#include(cmake/lapack.cmake)
find_package(BLAS REQUIRED)
find_package(LAPACK REQUIRED)

And removing the cmake/module/FindLAPACK.cmake file, I can get it to find MKL (I have the environment variable MKLROOT defined properly). Then I can switch the version of MKL by using -DBLA_VENDOR=Intel10_64ilp_seq for example. Pick your preferred version for the integer size you want.

Is there a reason to not do that? If so, documenting how to make use of MKL would be helpful.

Request to add "-Wno-implicit-function-declaration" flag to silence implicit function declaration error

Hi,

I was trying to build the MUMPS library as part of a separate CMake-based project and when I do, I get -Wimplicit-function-declaration warnings which flare up as errors. To address this, I currently have a patch file that adds the C flag -Wno-implicit-function-declaration using the following code:

# Append to current flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-implicit-function-declaration")

ExternalProject_Add(
  SCALAPACK
  GIT_REPOSITORY ${scalapack_git}
  GIT_TAG ${scalapack_tag}
  UPDATE_DISCONNECTED ${EP_UPDATE_DISCONNECTED}
  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_ROOT}
             -DLAPACK_ROOT:PATH=${LAPACK_ROOT}
             -DBUILD_SHARED_LIBS:BOOL=false
             -DCMAKE_BUILD_TYPE=Release
             -DBUILD_TESTING:BOOL=false
             -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}      # Specify flags in CMake arguments
  CMAKE_CACHE_ARGS -Darith:STRING=${arith}
  PATCH_COMMAND ${PATCH_COMMAND}
  BUILD_BYPRODUCTS ${SCALAPACK_LIBRARIES} 
  INACTIVITY_TIMEOUT 30
  CONFIGURE_HANDLED_BY_BUILD ON)

Would you have any problem with adding this flag in to prevent it from blocking the build of the project? I think this would be helpful for projects that pull MUMPS in using FetchControl or ExternalProject. If you'd like, I could create a PR for this.

Thanks!
Puneet

P.S. As I write this, I see that it would be more natural to append the flags with the following code:

# Append to current flags
list(APPEND CMAKE_C_FLAGS -Wno-implicit-function-declaration)

Link error windows oneapi

@Arwawadhnae reports:

MUMPS 5.5.1.5 compiled with CMake 3.24.2 and Intel one Api on Windows . After generating and Building the projects . I Had called dmumps_c() and zmumps_c() from mumps libraries . Errors appeared

DirectMumps.obj : error LNK2001: unresolved external symbol "void __cdecl _com_issue_error(long)" (?_com_issue_error@@YAXJ@Z) 

DirectMumps.obj : error LNK2001: unresolved external symbol "char * __cdecl _com_util::ConvertBSTRToString(wchar_t *)" (?ConvertBSTRToString@_com_util@@YAPEADPEA_W@Z) 

zmumps.lib(mumps_c.obj) : error LNK2001: unresolved external symbol ZMUMPS_SET_TMP_PTR 

zmumps.lib(mumps_c.obj) : error LNK2001: unresolved external symbol ZMUMPS_F77 1>dmumps.lib(mumps_c.obj) : error LNK2001: unresolved external symbol DMUMPS_SET_TMP_PTR 

dmumps.lib(mumps_c.obj) : error LNK2001: unresolved external symbol DMUMPS_F77

Implicit function declaration (invalid in C99) error on MacOS

Hi, in the commit that you closed this issue with, you added a flag to scalapack_c_flags to remove the aforementioned warning. However, it only accounts for the case that the user is using a GNU compiler. It unfortunately does not address the issue I encountered on MacOS (for which the compiler is Clang). Could you please adjust the code in cmake/scalapack.cmake to account for this? Thank you.

Originally posted by @puneetmatharu in #5 (comment)

Can't find MPI

Dear author,

Thank you very much for providing so powerful cmake file. I am trying to use it to generate visual studio 2022 project, I have installed the latest Intel oneapi 2024.1 and running the cmake, the following error displayed:

`
Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS)
Could NOT find MPI_Fortran (missing: MPI_Fortran_LIB_NAMES MPI_Fortran_F77_HEADER_DIR MPI_Fortran_MODULE_DIR MPI_Fortran_WORKS)
CMake Error at C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find MPI (missing: MPI_C_FOUND MPI_Fortran_FOUND C Fortran)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.29/Modules/FindMPI.cmake:1837 (find_package_handle_standard_args)
CMakeLists.txt:45 (find_package)

I have set the environment both I_MPI_ROOTandMPI_ROOTtoD:\Program Files (x86)\Intel\oneAPI\mpi\latest`

could you please help me to take a look at it?

Thanks,
Tang Laoya

Observing Mumps Execution errors (Windows/IntelOneAPI Compiler/Ninja Build)

Mumps Version (5.3.5)

When I try to run the executable for the sample c code (simple.c) and enabling only 'd' - double precision, I observe the following errors:
Kindly help. Attached build log and simple.c used.
build.txt
simple.c.txt

Error Log:
**//
C:\Users\winuser2\vishy\repos\mumps\mumps_fixes\ninja_build_dir\tests>Csimple.exe
No of Processes = 1, My Rank = 0
Start Mumps Init
Done Mumps Init
Start Mumps Analyse/Fact/Solve
[PROC 0] Error Return in Test application, id.infog[0] = -16
[PROC 0] Error Return in Test application, id.infog[1] = 0
[PROC 0] id.infog[2] = 0

C:\Users\winuser2\vishy\repos\mumps\mumps_fixes\ninja_build_dir\tests>mpiexec -n 2 Csimple.exe
No of Processes = 2, My Rank = 0
Start Mumps Init
No of Processes = 2, My Rank = 1
Start Mumps Init
** ERROR RETURN ** FROM DMUMPS INFO(1)= -3
** INFO(2)= -1
** ERROR RETURN ** FROM DMUMPS INFO(1)= -3
** INFO(2)= -1
[PROC 0] Error Return in Test application, id.infog[0] = -3
[PROC 0] Error Return in Test application, id.infog[1] = -1
[PROC 1] Error Return in Test application, id.infog[0] = -3
[PROC 1] Error Return in Test application, id.infog[1] = -1
[PROC 1] id.infog[2] = 0
[PROC 0] id.infog[2] = 0
//**

how to link the generated static lib to my visual studio project

hi there,
I use visual studio on windows with intel oneAPI Fortran.
I have never used ninja before, but used cmake to install libraries on windows. my question is, if I follow your instructions, what will I get? A static library? And could I link it to my personal visual studio project?
Thanks

Using the BLAS extension GEMMT

Dear Michael,

The use of BLAS extension GEMMT is not available in CMakeLists now, see user guide section 3.13. It will be appreciated if you can add this useful feature.

Thanks!

Best,
Adam

Removing RUNPATHS from installed DSOs

The build scripts add a RUNPATH entry in the installed library. It may be a good idea to leave the RUNPATH empty so that the linking fails in incorrectly initialized environments, instead of linking with incorrect libraries.

The default behavior of CMake is to remove RUNPATHs during DSO installation with the expectation that the executable linked with the DSO is usually responsible for providing the RPATH/RUNPATH. A hard coded path can cause issues if the library is used in a different environment from the one it was built.

For instance, I am building the MUMPS library in an HPC system, with a few development modules loaded. With the modules loaded, the shared object dependencies are resolved correctly:

$ ldd mump/lib64/libzmumps.so
   linux-vdso.so.1 (0x00007ffc71ea9000)
   libmumps_common.so.5.6.1.0 => /home/users/gkafanas/opt/mumps/lib64/libmumps_common.so.5.6.1.0 (0x00007ff1eca4e000)
   libesmumps.so => /home/users/gkafanas/opt/scotch/lib/libesmumps.so (0x00007ff1eca44000)
   libscotch.so.7.0.3 => /home/users/gkafanas/opt/scotch/lib/libscotch.so.7.0.3 (0x00007ff1ec9a4000)
   libscotcherr.so => /home/users/gkafanas/opt/scotch/lib/libscotcherr.so (0x00007ff1ec9a1000)
   libmetis.so => /home/users/gkafanas/opt/metis/lib/libmetis.so (0x00007ff1ec949000)
   libpord.so => /home/users/gkafanas/opt/mumps/lib64/libpord.so (0x00007ff1ec930000)
   libscalapack.so.2.2 => /home/users/gkafanas/opt/scalapack/lib/libscalapack.so.2.2 (0x00007ff1ec05c000)
   libopenblas.so.0 => /opt/apps/resif/aion/2020b/epyc/software/OpenBLAS/0.3.12-GCC-10.2.0/lib/libopenblas.so.0 (0x00007ff1eb249000)
   libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007ff1eb029000)
   libmpi_usempif08.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_usempif08.so.40 (0x00007ff1ec8f1000)
   libmpi_usempi_ignore_tkr.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_usempi_ignore_tkr.so.40 (0x00007ff1ec8e3000)
   libmpi_mpifh.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_mpifh.so.40 (0x00007ff1eafb0000)
   libmpi.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi.so.40 (0x00007ff1ead1f000)
   libgomp.so.1 => /opt/apps/resif/aion/2020b/epyc/software/GCCcore/10.2.0/lib64/libgomp.so.1 (0x00007ff1eacdf000)
   libgfortran.so.5 => /opt/apps/resif/aion/2020b/epyc/software/GCCcore/10.2.0/lib64/libgfortran.so.5 (0x00007ff1eaa26000)
   libm.so.6 => /usr/lib64/libm.so.6 (0x00007ff1ea6a4000)
   libgcc_s.so.1 => /opt/apps/resif/aion/2020b/epyc/software/GCCcore/10.2.0/lib64/libgcc_s.so.1 (0x00007ff1ec8c8000)
   libquadmath.so.0 => /opt/apps/resif/aion/2020b/epyc/software/GCCcore/10.2.0/lib64/libquadmath.so.0 (0x00007ff1ea65c000)
   libc.so.6 => /usr/lib64/libc.so.6 (0x00007ff1ea296000)
   libz.so.1 => /opt/apps/resif/aion/2020b/epyc/software/zlib/1.2.11-GCCcore-10.2.0/lib/libz.so.1 (0x00007ff1ea27d000)
   libbz2.so.1.0 => /opt/apps/resif/aion/2020b/epyc/software/bzip2/1.0.8-GCCcore-10.2.0/lib/libbz2.so.1.0 (0x00007ff1ea269000)
   liblzma.so.5 => /opt/apps/resif/aion/2020b/epyc/software/XZ/5.2.5-GCCcore-10.2.0/lib/liblzma.so.5 (0x00007ff1ea241000)
   /lib64/ld-linux-x86-64.so.2 (0x00007ff1ec899000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007ff1ea034000)
   libmvec.so.1 => /lib64/libmvec.so.1 (0x00007ff1e9e09000)
   liblustreapi.so.1 => /lib64/liblustreapi.so.1 (0x00007ff1e9bd5000)
   libopen-rte.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libopen-rte.so.40 (0x00007ff1e9aae000)
   libopen-pal.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libopen-pal.so.40 (0x00007ff1e9854000)
   libucp.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucp.so.0 (0x00007ff1e97f1000)
   libuct.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libuct.so.0 (0x00007ff1e97bf000)
   libucs.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucs.so.0 (0x00007ff1e9778000)
   libnuma.so.1 => /opt/apps/resif/aion/2020b/epyc/software/numactl/2.0.13-GCCcore-10.2.0/lib/libnuma.so.1 (0x00007ff1e976b000)
   libucm.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucm.so.0 (0x00007ff1e9753000)
   libbfd-2.35.2.so => /opt/apps/resif/aion/2020b/epyc/software/binutils/2.35-GCCcore-10.2.0/lib/libbfd-2.35.2.so (0x00007ff1e961a000)
   libpmi2.so.0 => /lib64/libpmi2.so.0 (0x00007ff1e9402000)
   libpmi.so.0 => /lib64/libpmi.so.0 (0x00007ff1e91fc000)
   libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007ff1e8fd7000)
   libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007ff1e8d45000)
   librt.so.1 => /lib64/librt.so.1 (0x00007ff1e8b3d000)
   libutil.so.1 => /lib64/libutil.so.1 (0x00007ff1e8939000)
   libhwloc.so.15 => /opt/apps/resif/aion/2020b/epyc/software/hwloc/2.2.0-GCCcore-10.2.0/lib/libhwloc.so.15 (0x00007ff1e88e7000)
   libpciaccess.so.0 => /opt/apps/resif/aion/2020b/epyc/software/libpciaccess/0.16-GCCcore-10.2.0/lib/libpciaccess.so.0 (0x00007ff1e88dc000)
   libxml2.so.2 => /opt/apps/resif/aion/2020b/epyc/software/libxml2/2.9.10-GCCcore-10.2.0/lib/libxml2.so.2 (0x00007ff1e8764000)
   libevent_core-2.1.so.6 => /lib64/libevent_core-2.1.so.6 (0x00007ff1e852b000)
   libevent_pthreads-2.1.so.6 => /lib64/libevent_pthreads-2.1.so.6 (0x00007ff1e8328000)
   libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff1e8124000)
   libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff1e7f0a000)
   libslurm_pmi.so => /usr/lib64/slurm/libslurm_pmi.so (0x00007ff1e7b2f000)
   libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007ff1e7646000)

However, after removing the development modules, there are issues in resolving the shared object dependencies:

$ ldd mump/lib64/libzmumps.so
mumps/lib64/libzmumps.so: /usr/lib64/libgfortran.so.5: version `GFORTRAN_10' not found (required by mumps/lib64/libzmumps.so)
   linux-vdso.so.1 (0x00007ffd5854a000)
   libmumps_common.so.5.6.1.0 => /home/users/gkafanas/opt/mumps/lib64/libmumps_common.so.5.6.1.0 (0x00007f24342ac000)
   libesmumps.so => /home/users/gkafanas/opt/scotch/lib/libesmumps.so (0x00007f24342a4000)
   libscotch.so.7.0.3 => /home/users/gkafanas/opt/scotch/lib/libscotch.so.7.0.3 (0x00007f2434204000)
   libscotcherr.so => /home/users/gkafanas/opt/scotch/lib/libscotcherr.so (0x00007f2434201000)
   libmetis.so => /home/users/gkafanas/opt/metis/lib/libmetis.so (0x00007f24341a7000)
   libpord.so => /home/users/gkafanas/opt/mumps/lib64/libpord.so (0x00007f243418e000)
   libscalapack.so.2.2 => /home/users/gkafanas/opt/scalapack/lib/libscalapack.so.2.2 (0x00007f24338ba000)
   libopenblas.so.0 => /usr/lib64/libopenblas.so.0 (0x00007f243146e000)
   libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f243124e000)
   libmpi_usempif08.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_usempif08.so.40 (0x00007f2434151000)
   libmpi_usempi_ignore_tkr.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_usempi_ignore_tkr.so.40 (0x00007f2434141000)
   libmpi_mpifh.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi_mpifh.so.40 (0x00007f24311d5000)
   libmpi.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libmpi.so.40 (0x00007f2430f44000)
   libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f2430d0c000)
   libgfortran.so.5 => /usr/lib64/libgfortran.so.5 (0x00007f243088d000)
   libm.so.6 => /usr/lib64/libm.so.6 (0x00007f243050b000)
   libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f24302f3000)
   libquadmath.so.0 => /usr/lib64/libquadmath.so.0 (0x00007f24300b2000)
   libc.so.6 => /usr/lib64/libc.so.6 (0x00007f242fcec000)
   libz.so.1 => /lib64/libz.so.1 (0x00007f242fad4000)
   libbz2.so.1.0 => not found
   liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f242f8ad000)
   /lib64/ld-linux-x86-64.so.2 (0x00007f24340f7000)
   libbz2.so.1.0 => not found
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f242f6a9000)
   liblustreapi.so.1 => /lib64/liblustreapi.so.1 (0x00007f242f477000)
   libopen-rte.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libopen-rte.so.40 (0x00007f242f350000)
   libopen-pal.so.40 => /opt/apps/resif/aion/2020b/epyc/software/OpenMPI/4.0.5-GCC-10.2.0/lib/libopen-pal.so.40 (0x00007f242f0f6000)
   libucp.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucp.so.0 (0x00007f242f093000)
   libuct.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libuct.so.0 (0x00007f242f061000)
   libucs.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucs.so.0 (0x00007f242f01c000)
   libnuma.so.1 => /opt/apps/resif/aion/2020b/epyc/software/numactl/2.0.13-GCCcore-10.2.0/lib/libnuma.so.1 (0x00007f242f00f000)
   libucm.so.0 => /opt/apps/resif/aion/2020b/epyc/software/UCX/1.9.0-GCCcore-10.2.0/lib/libucm.so.0 (0x00007f242eff7000)
   libbfd-2.35.2.so => /opt/apps/resif/aion/2020b/epyc/software/binutils/2.35-GCCcore-10.2.0/lib/libbfd-2.35.2.so (0x00007f242eebe000)
   libpmi2.so.0 => /lib64/libpmi2.so.0 (0x00007f242eca6000)
   libpmi.so.0 => /lib64/libpmi.so.0 (0x00007f242eaa0000)
   libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f242e87d000)
   libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f242e5eb000)
   librt.so.1 => /lib64/librt.so.1 (0x00007f242e3e3000)
   libutil.so.1 => /lib64/libutil.so.1 (0x00007f242e1df000)
   libhwloc.so.15 => /opt/apps/resif/aion/2020b/epyc/software/hwloc/2.2.0-GCCcore-10.2.0/lib/libhwloc.so.15 (0x00007f242e18d000)
   libpciaccess.so.0 => /opt/apps/resif/aion/2020b/epyc/software/libpciaccess/0.16-GCCcore-10.2.0/lib/libpciaccess.so.0 (0x00007f242e182000)
   libxml2.so.2 => /opt/apps/resif/aion/2020b/epyc/software/libxml2/2.9.10-GCCcore-10.2.0/lib/libxml2.so.2 (0x00007f242e00c000)
   libevent_core-2.1.so.6 => /lib64/libevent_core-2.1.so.6 (0x00007f242ddd3000)
   libevent_pthreads-2.1.so.6 => /lib64/libevent_pthreads-2.1.so.6 (0x00007f242dbd0000)
   libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f242d9cc000)
   libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f242d7b4000)
   libslurm_pmi.so => /usr/lib64/slurm/libslurm_pmi.so (0x00007f242d3d9000)
   libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f242cef0000)

The dependency on libbz2 (which is introduced by scotch) can no longer be resolved, and more importantly, the loaded FORTRAN library does not support the required version, in the 1st line of the ldd output.

The MUMPS library is provided through a module that sets up the environment, so that users do not have to load whole development modules. Executables that use MUMPS may also have a few paths hard-coded in their RUNPATH.

I believe it would be nicer if the library failed to detect the required DSOs completely when the environment is not set up properly, instead of detecting incorrect DSOs and possibly crashing at runtime. Would it make sense to maintain the default CMake behavior, removing the RPATH from the installed library, and leave it as an option for the user to choose otherwise?

The relevant settings are in file cmake/compilers.cmake:

set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)

GEMMT disabled by default for oneAPI 2024 on Windows?

cmake -G Ninja -B build -DCMAKE_INSTALL_PREFIX=.
-- The C compiler identification is IntelLLVM 2024.0.2 with MSVC-like command-line
-- The Fortran compiler identification is IntelLLVM 2024.0.2 with MSVC-like command-line
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Intel/oneAPI/compiler/latest/bin/icx.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: C:/Program Files (x86)/Intel/oneAPI/compiler/latest/bin/ifx.exe - skipped
-- MUMPS 5.6.2.2 upstream 5.6.2 install prefix: C:/Users/adam/Documents/MUMPS_5.6.2
-- CMake 3.29.0 Toolchain
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Found MPI_C: C:/Program Files (x86)/Intel/oneAPI/mpi/latest/lib/impi.lib (found version "3.1")
-- Found MPI_Fortran: C:/Program Files (x86)/Intel/oneAPI/mpi/latest/lib/impi.lib (found version "3.1")
-- Found MPI: TRUE (found version "3.1") found components: C Fortran
-- MKL_VERSION: 2024.0.0
-- MKL_ROOT: C:/Program Files (x86)/Intel/oneAPI/mkl/latest
-- MKL_ARCH: None, set to intel64 by default
-- MKL_LINK: None, set to dynamic by default
-- MKL_INTERFACE_FULL: intel_lp64
-- MKL_THREADING: None, set to intel_thread by default
-- MKL_MPI: None, set to intelmpi by default
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_scalapack_lp64_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_scalapack_lp64.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_intel_lp64_dll.lib
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_intel_thread_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_intel_thread.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_core_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_core.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/mkl/latest/lib/mkl_blacs_lp64_dll.lib
-- Found DLL: C:/Program Files (x86)/Intel/oneAPI/mkl/latest/bin/mkl_blacs_lp64.2.dll
-- Found C:/Program Files (x86)/Intel/oneAPI/compiler/latest/lib/libiomp5md.lib
-- Performing Test SCALAPACK_d_FOUND
-- Performing Test SCALAPACK_d_FOUND - Success
-- Performing Test SCALAPACK_s_FOUND
-- Performing Test SCALAPACK_s_FOUND - Success
-- Found SCALAPACK: $<IF:$BOOL:OFF,,>;MKL::mkl_scalapack_lp64;MKL::mkl_intel_lp64;MKL::mkl_intel_thread;MKL::mkl_core;MKL::mkl_blacs_lp64;C:/Program Files (x86)/Intel/oneAPI/compiler/latest/lib/libiomp5md.lib found components: MKL
-- MUMPS ORDERING_DEFS: pord
-- MUMPS ORDERING_LIBS: pord
-- Populating mumps
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: C:/Users/adam/Documents/MUMPS_5.6.2/build/_deps/mumps-subbuild
-- Downloading...
dst='C:/Users/adam/Documents/MUMPS_5.6.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
timeout='none'
inactivity timeout='none'
-- Using src='https://mumps-solver.org/MUMPS_5.6.2.tar.gz'
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
-- [download 4% complete]
-- [download 5% complete]
-- [download 8% complete]
-- [download 9% complete]
-- [download 10% complete]
-- [download 14% complete]
-- [download 16% complete]
-- [download 19% complete]
-- [download 22% complete]
-- [download 24% complete]
-- [download 27% complete]
-- [download 31% complete]
-- [download 34% complete]
-- [download 36% complete]
-- [download 37% complete]
-- [download 40% complete]
-- [download 42% complete]
-- [download 46% complete]
-- [download 50% complete]
-- [download 54% complete]
-- [download 58% complete]
-- [download 59% complete]
-- [download 62% complete]
-- [download 63% complete]
-- [download 64% complete]
-- [download 68% complete]
-- [download 70% complete]
-- [download 75% complete]
-- [download 79% complete]
-- [download 83% complete]
-- [download 87% complete]
-- [download 91% complete]
-- [download 95% complete]
-- [download 99% complete]
-- [download 100% complete]
-- verifying file...
file='C:/Users/adam/Documents/MUMPS_5.6.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
-- Downloading... done
-- extracting...
src='C:/Users/adam/Documents/MUMPS_5.6.2/build/_deps/mumps-subbuild/mumps-populate-prefix/src/MUMPS_5.6.2.tar.gz'
dst='C:/Users/adam/Documents/MUMPS_5.6.2/mumps/5.6.2'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[1/9] Creating directories for 'mumps-populate'
[1/9] Performing download step (download, verify and extract) for 'mumps-populate'
[2/9] No update_disconnected step for 'mumps-populate'
[3/9] No patch_disconnected step for 'mumps-populate'
[5/9] No configure step for 'mumps-populate'
[6/9] No build step for 'mumps-populate'
[7/9] No install step for 'mumps-populate'
[8/9] No test step for 'mumps-populate'
[9/9] Completed 'mumps-populate'
-- Configured MUMPS 5.6.2 source in C:/Users/adam/Documents/MUMPS_5.6.2/mumps/5.6.2
-- The following features have been enabled:

  • Parallel, parallel MUMPS (using MPI and Scalapack)
  • real32, Build with single precision
  • real64, Build with double precision

-- The following features have been disabled:

-- Configuring done (12.7s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/adam/Documents/MUMPS_5.6.2/build

How to compile with parmetis?

I tried to compile mumps with parmetis. I have installed parmetis to a folder ($PARMETIS_ROOT) and tried to configure the cmake project with: cmake .. -Dparmetis=1 -Dparallel=1 -DMETIS_LIBRARY=${PARMETIS_ROOT}/libparmetis.so -DMETIS_INCLUDE_DIR=${PARMETIS_ROOT}/include

and i got the following error:

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find METIS (missing: parallel)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/FindMETIS.cmake:59 (find_package_handle_standard_args)
CMakeLists.txt:85 (find_package)

Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to LOGICAL(4)

Dear Michael,
make[1]: Entering directory '/home/bbq/package/MUMPS_5.6.2/libseq'
gfortran -O -c mpi.f -o mpi.o
mpi.f:624:72:

624 | CALL MUMPS_COPY_LOGICAL( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to LOGICAL(4)
mpi.f:626:72:

626 | CALL MUMPS_COPY_REAL( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to REAL(4)
mpi.f:629:72:

629 | CALL MUMPS_COPY_DOUBLE_PRECISION( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to REAL(8)
mpi.f:631:72:

631 | CALL MUMPS_COPY_COMPLEX( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to COMPLEX(4)
mpi.f:633:72:

633 | CALL MUMPS_COPY_DOUBLE_COMPLEX( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to COMPLEX(8)
mpi.f:635:72:

635 | CALL MUMPS_COPY_2DOUBLE_PRECISION( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to REAL(8)
mpi.f:639:72:

639 | CALL MUMPS_COPY_INTEGER8( SENDBUF, RECVBUF, CNT )
| 1
Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to INTEGER(8)
make[1]: *** [Makefile:25: mpi.o] Error 1
make[1]: Leaving directory '/home/bbq/package/MUMPS_5.6.2/libseq'
make: *** [Makefile:80: libseqneeded] Error 2
how to solve this error?
thanks

FindLAPACK cannot find OpenMP on Windows

Dear Michael,

It seems that FindLAPACK.cmake can not find components OpenMP on Windows, with Intel oneAPI 2022 and cmake 3.24.0. The cmake GUI shows that LAPACK_libiomp5md_LIBRARY-NOTFOUND. Could you please take a look when you have some time?

Yours sincerely,
Adam

CMake version too high

CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.20 or higher is required. You are running version 3.19.7

Is a so recent version required?

Can't build project with Metis and Scotch ON

Dear author,

Thank you providing so powerful Cmake tool to build MUMPS on Windows. I am trying to clone the git and build project with CMake on Windows 10 64bit machine. The configure is VS2022+Intel OneAPI2024+Cmake 3.29.2. Now the problem is that if I enabled Metis, Parmetis, Scotch, parallel, openmp options, the Cmake file can't work.

Could you please help me to take a look at it?

Thanks,
Tang Laoya

How to set the mumps version

Hi!
I'm looking into building Ipopt with cmake. Therefore I need mumps and I came across this lovely project. First of all many thanks for putting in the work to build mumps with cmake!

For Ipopt I would like to build mumps 4.10.0 (it seems to be better for smaller instances, which I have).
I saw in the CMakeLists.txt that there is a variable named

if(NOT MUMPS_UPSTREAM_VERSION)
  set(MUMPS_UPSTREAM_VERSION 5.4.1)
endif()

so I tried to run cmake with

cmake -G"Ninja" -B build -S .  -DMUMPS_UPSTREAM_VERSION=4.10.0   

but that yielded

CMake Error at cmake/get_mumps.cmake:6 (string):
  string sub-command JSON member 'mumps 4.10.0' not found.
Call Stack (most recent call first):
  CMakeLists.txt:46 (include)


CMake Error at cmake/get_mumps.cmake:7 (math):
  math cannot parse the expression: "mumps-4.10.0-NOTFOUND-1": syntax error,
  unexpected exp_NUMBER, expecting end of file (11).
Call Stack (most recent call first):
  CMakeLists.txt:46 (include)


CMake Error at cmake/get_mumps.cmake:8 (foreach):
  foreach Invalid integer: 'ERROR'
Call Stack (most recent call first):
  CMakeLists.txt:46 (include)

Could you give me a hint?

Segmentation fault: address not mapped to object at address

Hello,
I solved the real system of linear equations using mumps solver on a computer clusters. When I solved a small-scale (1000,000 unknowns), it worked. However, when I solved a large-scale (9000,000 unknowns), the code reported an error:
.....
Calling MUMPS direct solver
Step 3: Solving primal problem...
[cdr2459:238884:0:238884] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x11cc8e00c)
[cdr2344:54672:0:54672] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x11dbe5c6c)
[cdr2404:39251:0:39251] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x11e56fc4c)
......
==== backtrace (tid: 54674) ====
0 0x000000000001f093 ucs_debug_print_backtrace() /tmp/ebuser/avx2/UCX/1.9.0/GCCcore-10.2.0/ucx-1.9.0/src/ucs/debug/debug.c:656
1 0x00000000000130f0 funlockfile() :0
2 0x00000000011fd34f dmumps_init_root_ana
() ???:0
3 0x00000000012868ba dmumps_ana_driver
() ???:0
4 0x00000000011ef6ee dmumps_() ???:0
5 0x0000000001125eb6 dmumps_f77_() ???:0
6 0x0000000001123aef dmumps_c() ???:0
7 0x00000000004b03ec mfem::MUMPSSolver::SetOperator() ???:0
8 0x000000000042c039 GOAFEM::solve() ???:0
9 0x0000000000419419 main() ???:0
10 0x0000000000023e1b __libc_start_main() /cvmfs/soft.computecanada.ca/gentoo/2020/usr/src/debug/sys-libs/glibc-2.30-r8/glibc-2.30/csu/../csu/libc-start.c:308
11 0x0000000000411c6a _start() ???:0

...

Can you help me solve these problems? Thanks very much.

Best wishes,
Zhengguang.

Windows Linking error when building using Ninja

Other than the changes to Cmake build system to include my prebuilt libraries of Metis, Lapack and Scalapack, I am using Cmake setup from mumps_scivision github codebase. Mumps libraries(Static) get built successfully using the cmake configure and build. I have attached the entire build log for reference <build.txt>. I observe the following linking errors when Mumps libraries are linked against a simple C test application. Kindly help resolve the issue,

//
dmumps.lib(dana_driver.F.obj) : error LNK2019: unresolved external symbol MUMPS_DUMPMATBINARY_C referenced in function DMUMPS_DUMP_PROBLEM
dmumps.lib(dana_driver.F.obj) : error LNK2019: unresolved external symbol MUMPS_DUMPRHSBINARY_C referenced in function DMUMPS_DUMP_PROBLEM
tests\Csimple.exe : fatal error LNK1120: 2 unresolved externals
/
/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.