сортировка в многопотоке медленнее чем в однопотоке?
void quick_sort_mp(int *array, int N)
{
int i = 0, j = N;
int p = array[N >> 1];
do
{
while (array[i] < p)
++i;
while (array[j] > p)
--j;
if (i <= j)
{
std::swap(array[i], array[j]);
++i;
--j;
}
} while (i <= j);
#pragma omp parallel
{
#pragma omp task
{
if (j > 0) quick_sort_mp(array, j);
}
#pragma omp task
{
if (N > i) quick_sort_mp(array + i, N - i);
}
}
}
сколько данных?
Обсуждают сегодня