我正在尝试使用openmp并行化Guibas Stolfi delaunay 三角测量。
这里有两件事要并行化-我所做的mergesort()和我被卡住的divide() 。我尝试了所有可能的方法,但徒劳无功。
在 divide() 中遵循的方法(除 n 征服)与 mergesort() 相同,但应用相同的并行化技术(omp 部分)仅适用于 mergesort。
我尝试了此处显示的并行化技术,但即使这样也行不通。我在某处读到了嵌套并行性,但我不确定如何实现它。谁能解释分治算法是如何并行化的?
代码:在主函数和应用部分构造中调用了两次合并排序。对除法执行相同操作不起作用
#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);
}
}
}