私は OpenMP を使用して自分のプログラムを並列化しようとしていますが、行き止まりになっていると感じることがあります。
クラスで定義(および初期化)した関数メンバーで変数を共有したいと思います。私の理解が正しければ、クラス#pragma omp parallel shared(foo)
のデータ メンバー ( int
、boost::multi_array
および など) を実行することはできません。std::vector
例: クラスのベクター データ メンバーで push_back() を使用します。a の値を更新しますboost::multi_array
。
私の質問は、OpenMP が適切なツールであるかどうか、または boost::thread または tbb を使用する必要があるかどうかです。または何か... C++ APIをサポートするもの
よろしく