IntelTBBを使用してバイトニックソートを実装しています。parallel_invokeメソッドを使用すると、すべてうまくいきます。ただし、task_groupを(waitメソッドを呼び出さずに)使用すると、出力はソートされません。以下のようにtask_groupを使用すると、プログラムは終了しません。
void bitonic_merge(bool up, int array[],int size){
if(size==1){
return;
}
int m = greatestPowerOfTwoLessThan(size);
bitonic_compare(up, array, size - m, m);
g->run(Bitonic_Merge(up, array , m));
g->run(Bitonic_Merge(up, &array[m],size - m));
g->wait();
return;
}
誰かが何が悪いのかわかりますか?parallel_invokeとtask_groupの使用の違いは何ですか?また、そのような状況で使用するのに良いものは何ですか?parallel_invokeまたはtask_group?_ または、他の方法を使用する必要がありますか?
前もって感謝します