int main()
{
for (int i = 1; i < 24; i++){
float total_time = 0;
for (int j = 0; j < 5; j++){
omp_set_num_threads(i);
vector<int> A(100000000,2);
double start_time = omp_get_wtime();
#pragma omp parallel for
for (int i = 0; i < 100000000; i++){
A[i] *= 2;
}
double time = omp_get_wtime() - start_time;
total_time += time;
}
total_time /= 5;
std::cout << "Number of threads: " << i << " Time(ms): " << total_time * 1000 << std::endl;
}
return 0;
}
Приведенный выше код, который просто удваивает записи в векторе целых чисел, был распараллелен путем изменения количества потоков.На моей четырехъядерной машине ускорения не наблюдается.Учитывая простую природу этого цикла, я ожидаю увидеть хоть какое-то ускорение.В чем здесь проблема?Как я могу изменить его, чтобы получить ускорение?