2011-06-22 7 views
0

mpif90を使用してコンパイルされた既存のFortranコードがあります。コンパイルして正常に実行します。しかし、私が-fopenmpオプションを導入すると、mpif90コンパイラはコードを正常にコンパイルしますが、プログラムは実行に失敗します。サブルーチンに入る前に突然終了します。スタックがいっぱいになっているので、プログラムは突然終了します。マンページによれば、-fopenmpはスタック上に配列を割り当て、-frecursiveフラグを使うのと同じです。この問題をどのように進めるのですか?mpiで既存のFortranコードをハイブリッドmpiに移植するopenmp

答えて

0

マスタースレッド(Linuxではlimitまたはulimitコマンドを使用する)とスレーブスレッド(OpenMP V3.0を使用している場合は環境変数を使用する)の両方でスタックを増やす必要がありますOMP_STACKSIZE)。

+0

スタックサイズを設定しようとしましたが、それは役に立ちませんでした。私は最大500mbまで行った –

+0

私が見つけたもう一つの奇妙な問題は、プログラムが失敗した1 mpiタスクを使ってプログラムを実行したときだった。しかし、私は2 mpiのタスクを使用しようとすると、プログラムは完了まで実行されます。 –

関連する問題