0

みんなが元気でいることを願っています。

計算を並列化するためにクラスターで OpenMP を使用しています。まばらな方程式系を解くために、UMFPACK にもリンクしたいと考えています。UMFPACK は OMP ブロックでは使用されません。

しかし、コードを実行すると、並列化がうまくいかないことがわかりました。htop を使用して CPU を監視します。20 個の CPU が実行されていると書かれていますが、バーはそうではないことを示しています。

ここに画像の説明を入力

また、私のコードは、-lumfpack でリンクしない場合よりもはるかに遅く実行されます。実際、-lumfpack を使用してライブラリにリンクしていない場合、htop は次のように表示されます。

ここに画像の説明を入力

次のコードを使用して、コードをコンパイルして実行します。

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

UMFPACK は OMP ブロックで使用されていないため、-lumfpack競合するのはなぜ-fopenmpですか? それらをどのように連携させていくかを考えていました。アドバイスをいただければ幸いです。ありがとうございました!

4

0 に答える 0