Я получил следующий вывод с сообщением об ошибке при выполнении программы, которая использует openmp в VS2008 C ++
номер потока: 0
номер потока: 1
Неустранимая пользовательская ошибка 1002: цикл for выполняется с несовместимыми параметрами между потоками
Моя программа выполняет следующие действия:
omp_set_dynamic(0);
omp_set_num_threads(2);
int i = 0;
int start_pos = 0;
int end_pos = 0;
#pragma omp parallel default(none) private(i, start_pos, end_pos)
{
int nThreadNum = omp_get_thread_num();
printf("thread number: %d\n", nThreadNum);
start_pos = 0;
end_pos = (number_of_model_points / 2 + 1);
if (nThreadNum != 0) {
start_pos = (number_of_model_points / 2) + 1;
end_pos = (number_of_model_points);
}
#pragma omp for
for(i = start_pos; i < end_pos; i++) {
...some code here...
}
}
В чем здесь проблема?Пожалуйста, исправьте меня, если я допустил ошибку.