Мне дали доступ к недавно построенному кластеру, который использует Kerrighed. Я первый пользователь этого кластера, поэтому возможны проблемы с настройкой и настройкой. Я также совершенно новичок в Kerrighed (и в основном новичок в кластерных вычислениях). У меня проблемы с выполнением некоторых основных задач, и я хочу проверить, правильно ли я представляю, как должен работать кластер.
В частности, я создал простую программу OpenMP в качестве тестового примера. Исходя из того, как я настроил, скомпилировал и запустил программу, я ожидаю, что программа будет использовать 24 ядра кластера. Однако это не так, несмотря на изменение переменной среды OMP_NUM_THREADS и других переменных среды OMP.
Я использую эту программу в качестве теста:
#include <omp.h>
#define NRA 4800
#define NCA 1000
#define NCB 10000
int main (int argc, char *argv[])
{
int tid, nthreads, chunk, i, j, k;
chunk = 100; /* set loop iteration chunk size */
double temp;
/*** Spawn a parallel region explicitly scoping all variables ***/
#pragma omp parallel shared(nthreads,chunk) private(temp,tid,i,j,k)
{
tid = omp_get_thread_num();
if (tid == 0)
{
nthreads = omp_get_num_threads();
}
/*** Put work inside inner loops, parallelize over the outer loop**/
#pragma omp for schedule (static, chunk)
for (i=0; i<NRA; i++)
{
for(j=0; j<NCB; j++)
for (k=0; k<NCA; k++)
temp = (i+k) * (j+k);
}
} /*** End of parallel region ***/
}
Затем я компилирую тестовую программу с:
gcc-4.7 -fopenmp test.c -o omp
Я устанавливаю количество потоков в качестве переменной среды
$ OMP_NUM_THREADS=24 ; export OMP_NUM_THREADS
Затем запустите программу:
$ ./omp
При рассмотрении использования кластера команда omp использует только 12 ядер для выполнения (в /proc /cpuinfo перечислено 84 ядра). Я ожидаю, что изложенные мною шаги приведут к использованию 24 ядер, так как я запустил этот код в качестве теста на настоящей SMP-машине с такими результатами.
Я сделал что-то не так при компиляции этого файла для кластера Kerrighed? Есть ли у меня другие серьезные недоразумения? Если нет, то каков будет следующий шаг в решении проблемы с кластером?
Спасибо за помощь, Андрей