scivision / mumps Goto Github PK
View Code? Open in Web Editor NEWMUMPS via CMake
Home Page: http://mumps-solver.org
License: MIT License
MUMPS via CMake
Home Page: http://mumps-solver.org
License: MIT License
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)
// based on d_example.c from MUMPS 5.5.1
/* Example program using the C interface to the
#include
#include "mpi.h"
#include "dmumps_c.h"
#include "TEST.h"
#define JOB_INIT -1
#define JOB_END -2
#define USE_COMM_WORLD -987654
int main(int argc, char ** argv)
{
DMUMPS_STRUC_C id;
MUMPS_INT n = 2;
MUMPS_INT8 nnz = 2;
MUMPS_INT irn[] = {1,2};
MUMPS_INT jcn[] = {1,2};
double a[2];
double rhs[2];
/* When compiling with -DINTSIZE64, MUMPS_INT is 64-bit but MPI
ilp64 versions may still require standard int for C interface. /
/ MUMPS_INT myid, ierr; */
int myid, ierr;
int error = 0;
ierr = MPI_Init(&argc, &argv);
ierr = MPI_Comm_rank(MPI_COMM_WORLD, &myid);
/* Define A and rhs */
rhs[0]=1.0;rhs[1]=4.0;
a[0]=1.0;a[1]=2.0;
/* Initialize a MUMPS instance. Use MPI_COMM_WORLD */
id.comm_fortran=USE_COMM_WORLD;
id.par=1; id.sym=0;
id.job=JOB_INIT;
DMUMPS_C(&id);
/* Define the problem on the host /
if (myid == 0) {
id.n = n; id.nnz =nnz; id.irn=irn; id.jcn=jcn;
id.a = a; id.rhs = rhs;
}
#define ICNTL(I) icntl[(I)-1] / macro s.t. indices match documentation /
/ No outputs */
id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
/* Call the MUMPS package (analyse, factorization and solve). */
id.job=6;
DMUMPS_C(&id);
if (id.infog[0]<0) {
std::cerr << " (PROC " << myid <<
") ERROR RETURN: \tINFOG(1)= " << id.infog[0] <<
"\n\t\t\t\tINFOG(2)= " << id.infog[1] << "\n";
error = 1;
}
/* Terminate instance. */
id.job=JOB_END;
DMUMPS_C(&id);
if (myid == 0) {
if (!error)
std::cout << "Solution is : (" << rhs[0] << " " << rhs[1] << ")\n";
else
std::cerr << "An error has occured, please check error code returned by MUMPS.\n";
}
ierr = MPI_Finalize();
return 0;
}
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
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)
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?
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?
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
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
Hi @scivision,
The new version of MUMPS, version 5.6.1, is available. Any plans to support it?
Best regards,
Georgios
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.
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
//
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
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
Below are the modules loaded on RHEL 9 cluster. Is there some incompatibility with Intel oneAPI 2024 mkl? I've posted on the OneAPI discussion board no replies. I've tried multiple versions of the MUMPS source code, same errors.
scotch/7.0.4, parmetis/4.0.3, scalapack/2.2.0, oneapi/mkl/2024.0, oneapi/mpi/2021.11
Warning: Type mismatch between actual argument at (1) and actual
argument at (2) (REAL(8)/INTEGER(4)).
ar vr ../lib/libzmumps.a zana_aux.o zana_aux_par.o zana_lr.o
zfac_asm_master_ELT_m.o zfac_asm_master_m.o zfac_front_aux.o
zfac_front_LU_type1.o zfac_front_LU_type2.o zfac_front_LDLT_type1.o
zfac_front_LDLT_type2.o zfac_front_type2_aux.o zfac_sispointers_m.o
zfac_lr.o zfac_mem_dynamic.o zfac_omp_m.o zfac_par_m.o
zfac_sol_l0omp_m.o zlr_core.o zlr_stats.o zlr_type.o
zmumps_comm_buffer.o zmumps_config_file.o zmumps_load.o
zmumps_lr_data_m.o zmumps_ooc_buffer.o zmumps_ooc.o zmumps_sol_es.o
zmumps_save_restore.o zmumps_save_restore_files.o zmumps_struc_def.o
zomp_tps_m.o zsol_lr.o zsol_omp_m.o zstatic_ptr_m.o zmumps_mpi3_mod.o
zini_driver.o zana_driver.o zfac_driver.o zsol_driver.o zsol_distrhs.o
zsol_distsol.o zend_driver.o zana_aux_ELT.o zana_dist_m.o
zana_LDLT_preprocess.o zana_reordertree.o zarrowheads.o zbcast_int.o
zfac_asm_ELT.o zfac_asm.o zfac_b.o zfac_diag.o
zfac_distrib_distentry.o zfac_dist_arrowheads_omp.o zfac_distrib_ELT.o
zfac_lastrtnelind.o zfac_mem_alloc_cb.o zfac_mem_compress_cb.o
zfac_mem_free_block_cb.o zfac_mem_stack_aux.o zfac_mem_stack.o
zfac_process_band.o zfac_process_blfac_slave.o
zfac_process_blocfacto_LDLT.o zfac_process_blocfacto.o
zfac_process_bf.o zfac_process_end_facto_slave.o
zfac_process_contrib_type1.o zfac_process_contrib_type2.o
zfac_process_contrib_type3.o zfac_process_maprow.o
zfac_process_master2.o zfac_process_message.o
zfac_process_root2slave.o zfac_process_root2son.o
zfac_process_rtnelind.o zfac_root_parallel.o zfac_scalings.o
zfac_determinant.o zfac_scalings_simScaleAbs.o
zfac_scalings_simScale_util.o zfac_sol_pool.o zfac_type3_symmetrize.o
zini_defaults.o
ar: creating ../lib/libzmumps.a
a - zana_aux.o
a - zana_aux_par.o
a - zana_lr.o
a - zfac_asm_master_ELT_m.o
a - zfac_asm_master_m.o
a - zfac_front_aux.o
a - zfac_front_LU_type1.o
a - zfac_front_LU_type2.o
a - zfac_front_LDLT_type1.o
a - zfac_front_LDLT_type2.o
a - zfac_front_type2_aux.o
a - zfac_sispointers_m.o
a - zfac_lr.o
a - zfac_mem_dynamic.o
a - zfac_omp_m.o
a - zfac_par_m.o
a - zfac_sol_l0omp_m.o
a - zlr_core.o
a - zlr_stats.o
a - zlr_type.o
a - zmumps_comm_buffer.o
a - zmumps_config_file.o
a - zmumps_load.o
a - zmumps_lr_data_m.o
a - zmumps_ooc_buffer.o
a - zmumps_ooc.o
a - zmumps_sol_es.o
a - zmumps_save_restore.o
a - zmumps_save_restore_files.o
a - zmumps_struc_def.o
a - zomp_tps_m.o
a - zsol_lr.o
a - zsol_omp_m.o
a - zstatic_ptr_m.o
a - zmumps_mpi3_mod.o
a - zini_driver.o
a - zana_driver.o
a - zfac_driver.o
a - zsol_driver.o
a - zsol_distrhs.o
a - zsol_distsol.o
a - zend_driver.o
a - zana_aux_ELT.o
a - zana_dist_m.o
a - zana_LDLT_preprocess.o
a - zana_reordertree.o
a - zarrowheads.o
a - zbcast_int.o
a - zfac_asm_ELT.o
a - zfac_asm.o
a - zfac_b.o
a - zfac_diag.o
a - zfac_distrib_distentry.o
a - zfac_dist_arrowheads_omp.o
a - zfac_distrib_ELT.o
a - zfac_lastrtnelind.o
a - zfac_mem_alloc_cb.o
a - zfac_mem_compress_cb.o
a - zfac_mem_free_block_cb.o
a - zfac_mem_stack_aux.o
a - zfac_mem_stack.o
a - zfac_process_band.o
a - zfac_process_blfac_slave.o
a - zfac_process_blocfacto_LDLT.o
a - zfac_process_blocfacto.o
a - zfac_process_bf.o
a - zfac_process_end_facto_slave.o
a - zfac_process_contrib_type1.o
a - zfac_process_contrib_type2.o
a - zfac_process_contrib_type3.o
a - zfac_process_maprow.o
a - zfac_process_master2.o
a - zfac_process_message.o
a - zfac_process_root2slave.o
a - zfac_process_root2son.o
a - zfac_process_rtnelind.o
a - zfac_root_parallel.o
a - zfac_scalings.o
a - zfac_determinant.o
a - zfac_scalings_simScaleAbs.o
a - zfac_scalings_simScale_util.o
a - zfac_sol_pool.o
a - zfac_type3_symmetrize.o
a - zini_defaults.o
ranlib ../lib/libzmumps.a
make[2]: Leaving directory '/path/to/rk3199/MUMPS_5.7.3/src'
make[1]: Leaving directory '/path/to/rk3199/MUMPS_5.7.3/src'
cd examples; make z
make[1]: Entering directory '/path/to/rk3199/MUMPS_5.7.3/examples'
mpif90 -O -std=legacy -DBLR_MT -fopenmp -fallow-argument-mismatch -I.
-I../include -I../src -I../libseq -c zsimpletest.F -o zsimpletest.o
mpif90 -o zsimpletest -O -fopenmp -fallow-argument-mismatch
zsimpletest.o -L../lib -lzmumps -lmumps_common
-L/insomnia001/shared/apps/metis/5.1.0/lib/ -lmetis -L../PORD/lib/
-lpord -L/insomnia001/shared/apps/scotch/7.0.4/lib -lesmumps -lscotch
-lscotcherr -L/insomnia001/shared/apps/oneapi/mkl/2024.0
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -L../libseq -lmpiseq
-L/usr/lib64 -lblas -lpthread
/usr/bin/ld: zsimpletest.o: in function `MAIN__':
zsimpletest.F:(.text+0x4f): undefined reference to `zmumps_'
/usr/bin/ld: zsimpletest.F:(.text+0x5f4): undefined reference to `zmumps_'
/usr/bin/ld: zsimpletest.F:(.text+0x628): undefined reference to `zmumps_'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_critical_with_hint'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_critical'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_for_static_init_8'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_float8_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_next_4'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_master'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_for_static_fini'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_init_4u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_reduce'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_flush'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_next_8u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_for_static_init_8u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_for_static_init_4'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_fork_call'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_next_8'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_push_num_threads'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_ordered'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_omp_task_alloc'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_init_8u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_barrier'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_cmplx8_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_omp_task'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_global_thread_num'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_init_4'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_critical'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_serialized_parallel'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_fixed4_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_omp_task_with_deps'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_reduce_nowait'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_float4_max'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_master'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_single'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_fini_8'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_for_static_init_4u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_init_8'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_fixed8_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_cmplx4_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_ok_to_fork'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_single'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_dispatch_next_4u'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_ordered'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_end_reduce_nowait'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_serialized_parallel'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_float4_add'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_atomic_float8_max'
/usr/bin/ld:
/path/to/apps/oneapi/mkl/2024.0/lib/libmkl_intel_thread.so: undefined
reference to `__kmpc_reduce'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:41: zsimpletest] Error 1
make[1]: Leaving directory '/path/to/me/MUMPS_5.7.3/examples'
make: *** [Makefile:32: z] Error 2
I want to output the factor of matrix A into a file. So i can transfer it to a GPU for further computation.
Could you please give me some suggestions.
I compiled MUMPS with MinGW on windows (GCC 12.2.0),It solves large scale problems correctly, but when I turn on OOC ICNTL(22)=1, the result is always Nan
BTW: The MSVC+OneAPI version works fine when i turn on OOC solving the same problem
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.
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:
-- 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
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.
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.
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
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
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.
...
Can you help me solve these problems? Thanks very much.
Best wishes,
Zhengguang.
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
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
//**
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)
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
.
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.
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)
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!
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)
Hi @scivision , could you please add the ParMetis and scotch ordering options support when you have some time?
Best,
Adam
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
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.
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?
I was trying to compile d_example.cpp in the "example" directory. I modified makefile to use mpicxx and mpif90 sequentially, but i failed.
d_example: [email protected]
mpif90 -o
.SUFFIXES: .c .F .o .cpp
.F.o:
.c.o:
.cpp.o:
mpicxx
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_ROOTand
MPI_ROOTto
D:\Program Files (x86)\Intel\oneAPI\mpi\latest`
could you please help me to take a look at it?
Thanks,
Tang Laoya
-- 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:
-- 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.
@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
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
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.
#include
#include "mpi.h"
#include "dmumps_c.h"
#define JOB_INIT -1
#define JOB_END -2
#define USE_COMM_WORLD -987654
int main(int argc, char ** argv)
{
DMUMPS_STRUC_C id;
MUMPS_INT n = 2;
MUMPS_INT8 nnz = 2;
MUMPS_INT irn[] = {1,2};
MUMPS_INT jcn[] = {1,2};
double a[2];
double rhs[2];
/* When compiling with -DINTSIZE64, MUMPS_INT is 64-bit but MPI
ilp64 versions may still require standard int for C interface. /
/ MUMPS_INT myid, ierr; */
int myid, ierr;
int error = 0;
ierr = MPI_Init(&argc, &argv);
ierr = MPI_Comm_rank(MPI_COMM_WORLD, &myid);
/* Define A and rhs */
rhs[0]=1.0;rhs[1]=4.0;
a[0]=1.0;a[1]=2.0;
/* Initialize a MUMPS instance. Use MPI_COMM_WORLD */
id.comm_fortran=USE_COMM_WORLD;
id.par=1; id.sym=0;
id.job=JOB_INIT;
dmumps_c(&id);
/* Define the problem on the host /
if (myid == 0) {
id.n = n; id.nnz =nnz; id.irn=irn; id.jcn=jcn;
id.a = a; id.rhs = rhs;
}
#define ICNTL(I) icntl[(I)-1] / macro s.t. indices match documentation /
/ No outputs */
id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
/* Call the MUMPS package (analyse, factorization and solve). */
id.job=6;
dmumps_c(&id);
if (id.infog[0]<0) {
std::cerr << " (PROC " << myid <<
") ERROR RETURN: \tINFOG(1)= " << id.infog[0] <<
"\n\t\t\t\tINFOG(2)= " << id.infog[1] << "\n";
error = 1;
}
/* Terminate instance. */
id.job=JOB_END;
dmumps_c(&id);
if (myid == 0) {
if (!error)
std::cout << "Solution is : (" << rhs[0] << " " << rhs[1] << ")\n";
else
std::cerr << "An error has occured, please check error code returned by MUMPS.\n";
}
ierr = MPI_Finalize();
return 0;
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.