私のクイックソートは正常に出力されますが、パラレル・バージョンは非パラレル・バージョンより速く実行されません。それをもっと速く動かすために他に何ができますか?パラレル・クイック・ソートがシーケンシャル・クイック・ソートより速く実行されない
void quickSort(int arr[], int low, int high)
{
int pi;
if (low < high)
{
//pi is partitioning index, arr[p] is now at right place
pi = partition(arr, low, high);
// Separately sort elements before partition and after partition
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
void quickSort_parallel_omp(int arr[], int low, int high)
{
int pi;
if (low < high)
{
pi = partition(arr, low, high);
omp_set_nested(1);
#pragma omp parallel sections num_threads(Nthreads)
{ //Nthreads is declared in the main as int Nthreads = 4
#pragma omp section
quickSort_parallel_omp(arr, low, pi - 1);
#pragma omp section
quickSort_parallel_omp(arr, pi + 1, high);
}
}
}
[多くのもの](https://stackoverflow.com/questions/3969813/which-parallel-sorting-algorithm-has-the-best-average-case-performance) – nwp
配列の大きさはどれくらいですか?新しいスレッドを開始するには時間がかかるので、その時間を稼ぐには十分な作業が必要です。そしてその後、いくつかの。 –
大きなものはありません20 – user6088127