-2

Qt / C ++プログラムをOpenMPと並列化して、Qtスレッドツールと比較できるようにしたいと思います。いくつか質問があります。

  1. OpenMPを正しく機能させるには、コードとプロジェクトファイルの両方に何を含める必要がありますか?

  2. 成果物のソフトウェアプロジェクトでOpenMPを使用するのは苦痛でしょうか?各バージョンには、OpenMPのアップデートと多くのメンテナンスを含める必要がありますか?

  3. OpenMPのパフォーマンスとして何を経験しましたか?

  4. ネストされた並列作業はOpenMPで信頼できますか?

  5. OpenMPはQtと同じプラットフォームでサポートされていますか?

任意の参照をいただければ幸いです。どうもありがとう!

4

1 に答える 1

2
  1. OpenMP を適切に動作させるには、コードとプロジェクト ファイルの両方に何を含める必要がありますか?

    コードに OpenMP プラグマを導入し、場合によっては OpenMP ランタイム ライブラリにリンクする必要があります (これにより、ビルド システムに限定的な変更が導入されます)。

  2. 成果物ソフトウェア プロジェクトで OpenMP を使用するのは苦痛でしょうか? 各バージョンに OpenMP の更新と多くのメンテナンスを含める必要がありますか?

    「痛い」の意味がわかりません。OpenMP を使用して成功している多くのプロジェクトを知っています。時々メンテナンスが必要になるかもしれません (しかし、これは Qt にも当てはまると思います)。

  3. OpenMP のパフォーマンスとしてどのような経験をしましたか?

    多かれ少なかれ、優れたスレッドベースの並列化ツールに期待されることは何ですか。ワークロードが十分に重い場合、OpenMP 自体がコードに大きなオーバーヘッドを追加することはなく、アムダールの法則が限界になります。

  4. OpenMP でのネストされた並列処理は信頼できますか?

    はい

  5. OpenMP は Qt と同じプラットフォームでサポートされていますか?

    フレームワークである Qt とは異なり、OpenMP のサポートは主にコンパイラによって行われます。Qt がコンパイル可能であるが、C++ コンパイラが OpenMP をサポートしていないプラットフォームが見つかる場合があります。もちろん、対象とするプラットフォームの種類によって異なります。

于 2012-04-13T09:03:28.633 に答える