void pmergesort(int a[], int l, int r)
{
if (l < r)
{
int m = l+(r-l)/2;
#pragma omp parallel
{
#pragma omp single
{
#pragma omp task
pmergesort(a, l, m);
}
#pragma omp task
pmergesort(a, m+1, r);
#pragma omp taskwait
pmerge(a,l,m,r);
}
}
}
Мой профессор сказал мне использовать #pragma omp single перед первым рекурсивным вызовом, чтобы сделать программу намного быстрее. Он работает очень быстро на моем ноутбуке, но он не правильно сортируется на GPU и Xeon phi, поскольку эти машины имеют больше параллельных потоков.Parallel Merge sort работает на ноутбуке, но не на GPU и Xeon phi
Пожалуйста, дайте мне знать, что я могу сделать, чтобы ускорить работу и работать на всех машинах.
Кто знает, что вы имеете в виду, так как код неформатирован, а фигурные скобки не сбалансированы. –
Извинения во время написания кода, это произошло, теперь я изменил его. Пожалуйста, взгляните и дайте мне знать, если у вас есть идея? –