2012-03-17 15 views
4

私はグローバルにdefault句をnoneに設定する方法はありますか?

#pragma omp parallel default none 

を使用することにより、並列領域内で、デフォルトで変数を共有していないのOpenMPを伝えることができます知っているが、世界的にこれを設定する方法はありますか?グローバルなデフォルトはプライベートと宣言されていないものはすべて共有されているようですが、少なくとも私のアプリケーションでは共有するよりもプライベートでなければならないことがたくさんあります。

答えて

7

OpenMPのすべての変数は、デフォルトで共有されます。プライベート変数のセットが必要な場合は、private節のパラレルプラグマディレクティブでこれらの変数を指定する必要があります。使用する場合

#pragma omp parallel default none 

プライベート変数と共有変数を指定する必要があります。例えば:

#pragma omp parallel default(none) private(i,j) shared(a,b) 

参考文献:

[1] http://en.wikipedia.org/wiki/OpenMP#OpenMP_clauses

[2] https://computing.llnl.gov/tutorials/openMP/#ClausesDirectives

+0

これはOPがそれを受け入れていても、元の質問に答えていません。 – nbro

関連する問題