по некоторым причинам, я должен поставить код между каждым for
заявление в вложенных циклов, как это:OpenMP вложенных циклов с кодом между каждым `for` цикла
for (int i = 0; i < n; ++i) {
//i have to put some code here
do something_1
for (int j = 0; j < n; ++j) {
//i have to put some code here
do something_2
for (int k = 0; k < n; ++k) {
do something_3
}
}
}
------ Обновление 20: 11 6.17 2016 ----------------------
Я нашел, что это не вложенные петли, сделанные моей программой с программой OpenMP, я использую std::vector
с методом push_back()
внутри и это действительно опасно при использовании OpenMP.
Я не являюсь экспертом в OpenMP, но как насчет того, чтобы вы обманули его и переместили «сделать что-то» и внутреннее для функции, а затем назовите его в for? – hauron
Вы пробовали '#pragma omp parallel for'? – hmatar
Как правило, цикл может быть парализован, если между итерациями нет зависимости. – kangshiyin