5

GNU/LinuxデスクトップのGCCでC++プログラミング言語を使用しています。C++でいくつかのPRAM並列アルゴリズムを実装しようとしています。私が理解しているように、マルチコアCPUでOpenMPを使用すると、多かれ少なかれCREWPRAMアルゴリズムをエミュレートするのに役立ちます。

多くの高度なPRAMアルゴリズムには、並列プレフィックスの合計、並べ替え、グローバルアドレス空間のベクトルに対する要素ごとの操作の実行などの操作が含まれます。

どういうわけか、グーグルの約15分後、この機能を提供するライブラリはないようです。つまり、すぐに使用できる基本的な並列アルゴリズムや、標準テンプレートライブラリのようなデータ構造です。

誰かがそのようなライブラリをリストできますか?

編集:私が必要としているのは、基本的に、CUDAの世界で使用されているThrustLibraryのOpenMPアナログです。http://thrust.github.com/

4

1 に答える 1

3

Thrustは、OpenMPまたはTBBを介したマルチコア、およびCUDAを介したGPUでの並列実行をサポートします。ウェブサイトから:

Thrustは、C ++標準テンプレートライブラリ(STL)に似た並列アルゴリズムライブラリです。Thrustの高レベルのインターフェースは、GPUとマルチコアCPU間のパフォーマンスの移植性を可能にしながら、プログラマーの生産性を大幅に向上させます。確立されたテクノロジー(CUDA、TBB、OpenMPなど)との相互運用性により、既存のソフトウェアとの統合が容易になります。Thrustを使用して高性能アプリケーションを迅速に開発してください!

Thrustのマルチコア機能にアクセスする方法に関する追加情報を次に示します。

于 2012-07-13T19:16:31.853 に答える