Я выполняю некоторые временные испытания своего кода, и логически кажется очень простым распараллеливание с OpenMP, поскольку каждое испытание не зависит от других. В моем нынешнем виде мой код выглядит примерно так:
for(int size = 30; size < 50; ++size) {
#pragma omp parallel for
for(int trial = 0; trial < 8; ++trial) {
time_t start, end;
//initializations
time(&start);
//perform computation
time(&end);
output << size << "\t" << difftime(end,start) << endl;
}
output << endl;
}
У меня есть подлое подозрение, что это своего рода ошибка, однако, поскольку два потока могут одновременно записывать значения в вывод, что приводит к неправильному форматированию. Является ли это проблемой, и если да, то исправит ли код output << size << ...
оператором #pragma omp critical
это