1. ホーム
  2. c

[解決済み] PthreadsとOpenMPの比較

2022-03-04 19:27:14

質問

Linuxを使用してC言語でマルチスレッドアプリケーションを作成しています。

POSIXスレッドAPIとOpenMP APIのどちらを使用すべきか迷っています。

どちらを使うのが良いのか、悪いのか、教えてください。

編集する。

両方のAPIが カーネルレベル または ユーザーレベル のスレッドですか?

解決方法は?

PthreadsとOpenMPは、全く異なるマルチプロセッシングパラダイムを表しています。

Pthreads は、スレッドを扱うための非常に低レベルなAPIです。したがって、スレッド管理 (create/join/etc) やミューテックスなどに対して非常にきめ細かい制御が可能です。かなり素っ気ないです。

一方 オープンエムピー 大いに また、pthreadsよりもはるかに簡単に拡張することができます。具体的な例としては、OpenMPのワークシェアリングコンストラクトがあり、比較的容易に複数のスレッドに作業を分割することができます。(ウィキペディアの 長所と短所一覧 .)

とはいえ、あなたが実装しようとしている具体的なプログラムや、それをどのように使用する予定なのかについて、本当に詳しく書かれていないので、一方のAPIを他方より推奨するのはかなり無理がありますね。