0

I hope everyone is doing well.

I am using OpenMP on the cluster to parallelize the computation. I also want to link to UMFPACK to solve the sparse equation system. The UMFPACK is not used in the OMP block.

But I found that when I run the code, the parallelization does not work well. I use htop to monitor the CPU. It does say that there are 20 CPUs running, but the bars imply that's not true:

enter image description here

And my code does run much slower than the one without linking by -lumfpack. Actually, if not linking to the library using -lumfpack, htop should display something like:

enter image description here

I use the following code to compile and run the code:

module load suitesparse/5.6.0

gfortran main.f90 -lumfpack -o main.out -O3 -fopenmp -ffree-line-length-none -Wno-unused -fimplicit-none -Wall -fcheck=bound,do -ffpe-trap=invalid,zero,overflow

./main.out

Since UMFPACK is not used in the OMP block, why -lumfpack conflicts with -fopenmp? I was wondering how to make them work together. Any advice is appreciated. Thank you!

zz273
  • 17
  • 5
  • This seems like more a question for umfpack folk than for OpenMP ones. (So you may want to change the title to attract their attention). – Jim Cownie Jun 15 '20 at 07:38
  • I advise you to check the runtime used by setting the environment variable `OMP_DISPLAY_ENV` to `TRUE`. Regarding the target architecture, it may also be good to tune other OpenMP variables such as `OMP_PROC_BIND` and `OMP_PLACES` in order to improve performance. – Jérôme Richard Jun 15 '20 at 22:44
  • Thank you, Jim. I change the title as you suggest. – zz273 Jun 18 '20 at 03:26
  • Thank you, Jérôme Richard. I will look into these variables you suggest. – zz273 Jun 18 '20 at 03:27

0 Answers0