Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.

Notice

The forum is in read only mode.

Error in compilation on Ubuntu 22.04

More
1 year 10 months ago - 1 year 10 months ago #4423 by arashgmn
I'm trying to build ngsolve with MUMPS, MPI, and MKL on two 64-bit machines running Ubuntu 20.04 and 22.04 respectively. (I'm using virtual machine instances for now, in case it matters).

I managed to get things up and running on 20.04, but not on 22. Particularly, I can configure the make file with no error, but make raises a number of errors in ana_orderings_wrappers_m.F. Something like the following (lines:315:39):

Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
make[6]: *** [Makefile:381: ana_orderings_wrappers_m.o] Error 1
make[5]: *** [Makefile:20: c] Error 2
make[4]: *** [Makefile:40: mumps_lib] Error 2
make[3]: *** [Makefile:18: c] Error 2
make[2]: *** [CMakeFiles/project_mumps.dir/build.make:86: dependencies/src/project_mumps-stamp/project_mumps-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:254: CMakeFiles/project_mumps.dir/all] Error 2
make: *** [Makefile:156: all] Error 2


These are my steps for installing ngsolve on Ubuntu 20.04:
  • I installed the dependencies mentioned in the docs.
  • In addition, I installed all MP implementations, as well as MKL as follows:
    • sudo apt-get install openmpi-bin libopenmpi-dev mpich intel-mkl-full
  • I added the installation locations to my path so that make can find these packages later (although, probably I could have given them as argument too)
  • After a number of trials, turned out for running the example files I need to install mpi4python and mkl (in my python environment) which I did using pip3.
    • python3 -m pip install mpi4py mkl
  • And finally configured my makefile as follows:
    • Code:
      cmake -DCMAKE_INSTALL_PREFIX=${BASEDIR}/ngsolve-install -DUSE_MKL=ON -DMKL_INCLUDE_DIR=/usr/include/mkl -DMKL_STATIC=OFF -DMKL_SDL=OFF -DMKL_MULTI_THREADED=OFF -DUSE_MPI=ON -DUSE_OCC=ON -DUSE_MUMPS=ON -DBUILD_STUB_FILES=OFF ${BASEDIR}/ngsolve-src
My questions:
1. Why isn't this procedure work in Ubuntu 22.04? It seems to me the code is not compiled. But unfortunately, my understanding of Fortran is next to nothing.
2. I had a painful experience with installing MPICH and openMP side by side, especially on a cluster, and I reckon that what I have done above is actually a bad practice. How can I avoid that?
4. I failed to installed with BLAS/LAPACK and that's why I switched to MKL. But is it necessary? Can I avoid these extra installations?

Thanks!
Last edit: 1 year 10 months ago by arashgmn.
More
1 year 6 months ago #4502 by mgobrial
Hi,

I had the same problems. Before the cmake, I tried his comman line:

export FFLAGS="-fallow-argument-mismatch"

but it did not help. Are there any new achievements?

Best, Mario
More
1 year 6 months ago #4516 by matthiash
Hi,

I am also no Fortran expert. Since your problem is about building Mumps (the only dependency here with Fortran source code), I suggest to disable it first and fix all other issues (if any).
Concerning Mumps: Did you try different Fortran compilers/versions? Which one are you using?

Best,
Matthias
More
1 year 6 months ago #4518 by JuliusZ
This error can be fixed by the following patch:

diff --git a/cmake/external_projects/mumps.inc b/cmake/external_projects/mumps.inc
index effe76f54..6c77bc95b 100644
--- a/cmake/external_projects/mumps.inc
+++ b/cmake/external_projects/mumps.inc
@@ -32,7 +32,7 @@ CDEFS   = -DAdd_
 
 #Begin Optimized options
 # uncomment -fopenmp in lines below to benefit from OpenMP
-OPTF    = -O  -fPIC -DALLOW_NON_INIT # -fopenmp
+OPTF    = -O  -fPIC -DALLOW_NON_INIT -fallow-argument-mismatch # -fopenmp
 OPTL    = -O -fPIC # -fopenmp
 OPTC    = -O -fPIC # -fopenmp
 #End Optimized options

 
More
1 year 6 months ago #4519 by JuliusZ
To be honest, I have not tested this patch extensively.
It worked on our systems but I would use it with caution.
Time to create page: 0.173 seconds