Мне дали доступ к недавно построенному кластеру, который использует 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? Есть ли у меня другие серьезные недоразумения? Если нет, то каков будет следующий шаг в решении проблемы с кластером?

Спасибо за помощь, Андрей

1 ответ1

0

Предлагаю попробовать здесь -

https://listes.irisa.fr/sympa/arc/kerrighed.users

http://dir.gmane.org/gmane.linux.cluster.kerrighed.user

Список рассылки с низким трафиком, но некоторые разработчики Kerrighed отвечают на технические вопросы там.

Поскольку ваш керриговый кластер является новым, вероятно, поможет дать информацию о вашем оборудовании (сколько ядер на узел? какая именно модель процессора? все узлы одинаковые?) и на ваших версиях программного обеспечения для openmp/kerrighed/linux.

п.с. AFAIK kerrighed поддерживает только миграцию процессов, а не миграцию потоков, что может сбить с толку подсчет ядер?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .