問題タブ [openmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenMPに関する質問
クラスメンバー関数のループを並列化したい。ただし、コードには2つのエラーがあります。
これらのエラーを説明し、問題を解決するにはどうすればよいですか?ありがとう、よろしく!
c++ - OpenMP を悪用していませんか?
OpenMP を使用して for ループを並列化するプログラムがあります。ループ内では、スレッドが共有変数に書き込むので、それらを同期する必要があります。ただし、セグメント フォールト、ダブル フリー、破損エラーのいずれかが発生することがあります。誰が何が起こるか知っていますか?よろしくお願いします!コードは次のとおりです。
アップデート:
私の最後の投稿double free or破損のように、コードはシングル スレッドでは問題なく実行されますが、マルチ スレッドでは実行時エラーが発生します。エラーは時々変化します。2回実行すると、1つはsegfaultになり、もう1つはダブルフリーまたは破損になります。
c - OpenMP で内部ループごとにスレッドを開始する
私は OpenMP を初めて使用し、個々のスレッドを開始して 2D 配列内の各アイテムを処理しようとしています。
本質的に、これは:
私がやっていることはこれです:
これは実際に各 2D アイテムのスレッドを開始しますか? どうやってそれをテストしますか?それが間違っている場合、それを行う正しい方法は何ですか? ありがとう!
注: コードは大幅に簡略化されています
openmp - OpenMP スプリットジョイント モデル
OpenMP を使用して、いくつかの分離された for ループを並列化しています。gdb でデバッグしているときに、実行が最初の並列領域に到達すると、複数のスレッドが作成されることがわかりました。プログラム全体の実行の最後に、複数のスレッドが終了しました。これは、OpenMP の分割結合モデルについて私が考えていることとは対照的です。このモデルでは、スレッドは結合してマスター スレッドになり、プログラム全体の最後ではなく、各並列領域の最後で終了する必要があります。
私が間違っている?
ありがとう!
c++ - OpenMP プログラムで FPU の動作を制御しますか?
FPU 制御ワードを ( を使用して_controlfp()
) 変更する大規模な C++ プログラムがあります。一部の FPU 例外のマスクを解除し、SEHTranslator をインストールして型付き C++ 例外を生成します。VC++ 9.0 を使用しています。
OpenMP (v.2.0) を使用して、計算ループの一部を並列化したいと考えています。私はすでにそれを1つにうまく適用しましたが、数値結果はわずかに異なります(ただし、計算が異なる順序で実行されたことが原因である可能性があることは理解しています)。これは、FPU の状態がスレッド固有であるためだと思います。OpenMP スレッドにマスター スレッドからその状態を継承させる方法はありますか? または、新しいスレッドが正しい状態を設定する特定の関数を実行することを OpenMP を使用して指定する方法はありますか? この状況に対処するための慣用的な方法は何ですか?
qt - QtはOpenMPをサポートしていますか?
Visual StudioプロジェクトでOpenMPを使用しており、現在QTクリエーターへの変更を真剣に考えています。(Visual Studioはダメではないですか?、Microsoftにもっと期待しています)
しかしとにかく...QTクリエーターはOpenMPをサポートしていますか?その場合、それを有効にするにはどうすればよいですか?または、デフォルトで有効になっている可能性がありますか?何か特別なことをする必要がありますか?
アドバイスありがとうございます。イグナシオ。
xcode - OS X 上の OpenCV を使用した OpenMP
OpenMP と OpenCV を Xcode の新しいプロジェクトでうまく動作させるのに問題があります。現在の状態のプロジェクトは、デフォルトのカメラからフレームを取得してウィンドウに配置するだけです。この機能は機能します。ただし、別のスレッドでフレームを取得したいと考えており、OpenMP の経験を積みたいと思っていました。
チェックボックスをオンにして Xcode で OpenMP を有効にするだけで大混乱が生じます。プログラムは、正常にコンパイル、ロード、および実行されますが、どのイベントにも応答しません。ただそこに座って、グラブされたフレームを描画します。(OS X のビーチボールも問題なく動作していますが、取得しています。) 最終的には、アプリを強制終了するか、Xcode から強制終了する必要があります。OpenMP の #pragmas がなくてもこの動作が得られることに注意してください。Xcode でオプションを有効にするだけです。
これを解決する方法についてのアイデアはありますか?
c - 動的に割り当てられた配列がopenmpでプライベートであることを確認する方法
Linuxマシンでgccを使用してopenMPでCで作業しています。openmp の並列 for ループでは、静的に割り当てられた配列をプライベートとして宣言できます。コードフラグメントを考えてみましょう:
そして、すべてが期待どおりに機能します。しかし、代わりに動的に割り当てると、
a の値 (少なくとも a[1...9]) は保護されていませんが、共有されているかのように機能します。これは、pragma コマンドでは、プライベートにする必要がある配列 a の大きさを omp に伝えるものがないため、理解できます。この情報をopenmpに渡すにはどうすればよいですか? 動的に割り当てられた配列全体をプライベートとして宣言するにはどうすればよいですか?
c - #include する必要がありますか私の C/C++ ソースで?
C/C++ ソースに omp.h を含める必要はありますか? なんで?または、なぜですか?-fopenmp フラグを使用すると、gcc コンパイラにデフォルトで含まれますか? 違いはないようです。
c - 円周率を計算するための並列アルゴリズムの実装
OpenMPのスレッドを使用して以下のコードの並列バージョンを実装したいのですが、これを行うためのより良い方法はありますか?