スレッドダイバージェンスという用語は、CUDAで使用されます。私の理解では、さまざまなスレッドがさまざまなタスクを実行するように割り当てられている状況であり、これによりパフォーマンスが大幅に低下します。
私は疑問に思っていましたが、openmpでこれを行うことに対して同様のペナルティがありますか?たとえば、6コアプロセッサと6スレッドのプログラムがあるとします。3つのスレッドに特定のタスクを実行させ、他の3つのスレッドにまったく異なるタスクを実行させる条件がある場合、パフォーマンスに大きな影響がありますか?本質的には、openmpを使用してMIMDを実行するようなものだと思います。
基本的に、私はopenmpとCUDAを使ってプログラムを書いています。2つのスレッドでCUDAカーネルを実行し、残りのスレッドでCコードを実行したいと思います。ありがとう。