В моем распоряжении 8 процессоров.Я хотел сделать параллельное изменение размеров следующим образом:
vector<vector <int> > test;
test.resize(10000);
#pragma omp parallel num_threads(8)
{
#pragma omp for
for (int i = 0;i < 10000;i++)test[i].resize(500000);
}
Я заметил, что программа не использует 100% мощности процессора - она использует только 15%.Поскольку я изменил код для
vector<vector <int> > test;
test.resize(1000000);
#pragma omp parallel num_threads(8)
{
#pragma omp for
for (int i = 0;i < 1000000;i++)test[i].resize(5000);
}
, программа использовала около 60% мощности процессора.Я не понимаю этого явления - я надеялся, что он будет использовать 100% мощности процессора в больших случаях.Я что-то здесь упускаю?