3

openmp を使用する fortran サブルーチンを cython で書き直そうとしています。Fortran サブルーチン自体を cython で書き直すのは難しくありません。非openmpバージョンは正常に動作します。しかし、openmp ディレクティブについてはどうすればよいかわかりません....

!$omp parallel do private(x, y, z)

cython では、cython.parallel.prange を使用して openmp parallel do を取得することを理解しています。ただし、ループのプライベート変数を宣言する方法がわかりません。

これは可能ですか?

あなたが提供できる洞察に感謝します。

4

1 に答える 1

1

はい、可能です。ドキュメントは次のように述べています。

prange ブロック内の変数に代入すると、変数は lastprivate になります。つまり、変数には最後の反復からの値が含まれます。..... ブロックで並列に割り当てられた変数は、ブロックの後でプライベートになり、使用できなくなります。これは、連続した最後の値の概念がないためです。

于 2015-05-21T09:58:59.310 に答える