openmp

    0

    1答えて

    #pragma omp parallel for num_threads(6) for (int m = 0; m < k_num; m++) { Point(0, 0) = double(data3[j * 3]) - mean1[m].at<double>(0, 0); Point(0, 1) = double(data3[j * 3 + 1])

    0

    1答えて

    こんにちは私はopenMPでこのコードの計算を並列化しようとしています。有限差分法を用いた流体力学渦度の計算である。私はそうするためにAlternating direction暗黙の方法を使用しています。 私はその実行をスピードアップしたいと思います。 (ここではNx = Ny = 100) 問題は、openMpを使用するとコードをスピードアップするのではなく速度を落とすことです。私は共有変数を指

    0

    1答えて

    使用してMatlabの2016BにいくつかのC++コードをコンパイル: mex CXXFLAGS="\$CXXFLAGS -std=c++11 -fopenmp" CXXOPTIMFLAGS='\$CXXOPTIMFLAGS -Ofast -DNDEBUG mexMyFunction.cpp Iました次のエラー: undefined reference to `omp_get_thread_n

    0

    1答えて

    私は現在、大きなデータセットで動作し、最後に配列を生成するコードを持っています。これは、グローバルバッファに配列を追加する必要があり、これはすべてループ内で発生します。例えば。 for(i=0;i<10000;i++) { <1. do some processing, generate a 1M-sized array> <2. update this array into glob

    1

    1答えて

    メキシコからのご挨拶! 私は、再帰を含むいくつかのコードを並列化する作業に直面していましたが、いくつかの研究を行った後、ompのタスクを利用するのが最善の方法であることに気付きました。しかし、そのランタイムはシリアル対応のものよりかなり大きいようです。 私はこの質問がこのフォーラムで2,3回以上尋ねられていることを知っていますが、提案された解決策のどれも私のケースに合っていないようです。 以下、私

    -1

    1答えて

    こんにちは、バイナリ検索ツリーでパラレル検索の要素を見つけることは可能ですか?パラレルまたはシリアルの方が高速でしょうか?ルート25を持つツリーの例では、探したい要素が50であるため、右ノードだけが存在し、検索する必要があります。パラレルを使用すると、左ノードで浪費されます。 Tree

    1

    1答えて

    私はopenMPを使ってディスクからたくさんの行を含む大きなファイルを読みたいと思っています。それを行う1つの方法は、seekg()機能を使用するようです。しかし、頭痛の部分はseekg()のみで、ファイルインデックスを特定のバイトに移動することができます。 これは、各行のサイズがまったく同じ場合は問題ありません。しかし、私は、各行のサイズがまったく違うなら、それをどうやって行うのか分かりません。

    3

    1答えて

    私は、ループの各反復をOpenMPセクションにすることで、OpenMPの範囲ベースのforループを並列化しようとしています。私はこれをしたい: #pragma omp parallel sections { for (auto x : range) { #pragma omp section // LOTS OF CODE HERE } } しかし、これは動作し

    0

    1答えて

    私は、各スレッドがomp_get_thread_num()でアクセス可能なスレッドのID番号でアドレス指定されたメモリを管理するようにすることで、CPU上で動作するOpenMPコードを持っています。これはCPU上でうまく動作しますが、GPUでも動作しますか? A MWEは次のとおりです。 #include <iostream> #include <omp.h> int main(){

    3

    1答えて

    は、次のコードを確認してください: #include <stdio.h> #include <omp.h> #define ARRAY_SIZE (1024) float A[ARRAY_SIZE]; float B[ARRAY_SIZE]; float C[ARRAY_SIZE]; int main(void) { for (int i = 0; i < ARRAY_