openmpを使用してGuibas Stolfi delaunay 三角形分割を並列化しようとしています。
ここで並列化することが 2 つあります。私はすべての可能なアプローチを試みましたが、無駄でした。
分割 () で従うアプローチ (分割 n 征服) は、マージソート () のアプローチと同じですが、同じ並列化手法 (omp セクション) の適用は、マージソートに対してのみ機能します。
ここに示す並列化手法を試しましたが、それでもうまくいきません。ネストされた並列処理についてどこかで読みましたが、それを実装する方法がわかりません。分割統治アルゴリズムがどのように並列化されているか説明できる人はいますか?
CODE:メイン関数と適用されたセクション構成でマージソートが 2 回呼び出されました。除算関数で同じことを行っても機能しません
#pragma omp parallel
{
#pragma omp sections nowait
{
#pragma omp section
{
merge_sort(p_sorted, p_temp, 0, n/2);
}
#pragma omp section
{
merge_sort(p_sorted, p_temp, (n/2)+1, n-1);
}
}
}