У меня странная проблема. У меня есть мексфункция Matlab, в которой я использовал директивы / функции OpenMP. Перед началом параллельного раздела (параллельный для ...) я использую команды для установки и печати количества созданных потоков:
nP = omp_get_num_procs();
omp_set_num_threads(nP);
mexPrintf("\n Num of threads= %d\n",nP);
.
.
.
#pragma omp parallel for shared(...)
Проблема в том, что на выходе выводится «Num of threads = 12», но следующий параллельный раздел не работает на всех 12 ядрах моей машины (но только на 1 ядре). Моя программа была написана давно, и у меня не было такой проблемы ранее (она работала на всех 12 ядрах). Недавно система была повреждена и ОС (Win 7 Pro) была переустановлена с обновленной версией Matlab 2011b (ранее 2010b). Я также установил Visual Studio 2010 Pro.
Есть что-то, что я пропускаю или пропускаю?