Проект Templet

акторный фреймворк для запуска задач
на множестве ядер, кластерах и в облаках
templet.ssau.ru

Инструменты пользователя

Инструменты сайта


cluster:запуск_приложений_на_кластере

Запуск приложений на суперкомпьютере "Сергей Королёв"

Удалённый доступ

Удаленный доступ на кластеры, возможен только с ip адресов корпоративной сети СГАУ и ip-адресов, которые были указаны в заявке на регистрацию пользователя. Самое простое - использовать какую-нибудь промежуточную машину и войти на неё, а с неё на кластер.

ssh <username>@sk.ssau.ru

Передача файлов

scp <local_file> sk.ssau.ru:/home/<username>/ 

Пример запуска параллельного приложения на одной ноде

test.c
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (int argc, char *argv[]) {
  int th_id, nthreads;
  #pragma omp parallel private(th_id)
  {
    th_id = omp_get_thread_num();
    printf("Hello World from thread %d\n", th_id);
    #pragma omp barrier
    if ( th_id == 0 ) {
      nthreads = omp_get_num_threads();
      printf("There are %d threads\n",nthreads);
    }
  }
  return EXIT_SUCCESS;
}

Собираем:

gcc -fopenmp test.c -o test

Тестируем (НИКОГДА НЕ ДЕЛАЙТЕ ТАК!!!):

$ ./test
Hello World from thread 15
Hello World from thread 2
Hello World from thread 5
Hello World from thread 14
Hello World from thread 9
Hello World from thread 6
Hello World from thread 1
Hello World from thread 0
Hello World from thread 13
Hello World from thread 11
Hello World from thread 8
Hello World from thread 12
Hello World from thread 3
Hello World from thread 10
Hello World from thread 4
Hello World from thread 7
There are 16 threads

Для запуска в пакетной системе напишем командный файл

myjob.pbs
#!/bin/bash
#PBS -N myjob
#PBS -l walltime=10:00:00
#PBS -l nodes=1:ppn=8
#PBS -j oe
cd $PBS_O_WORKDIR
./test

Добавляем в очередь(пример):

[user@mgt1 ~]$ qsub myjob.pbs
1234.mgt1

Смотрим прогресс выполнения:

[user@mgt1 ~]$qstat -a
 
mgt1: 
                                                                          Req'd  Req'd   Elap
Job ID               Username    Queue    Jobname          SessID NDS   TSK    Memory Time  S Time
-------------------- ----------- -------- ---------------- ------ ----- ------ ------ ----- - -----
42659.mgt1           popov       batch    Mesh3300_mesh330    --      4     48    --  12:00 Q   --
1234.mgt1            user        batch    myjob              3456     1      8    --  00:00 C 00:00

Завершено. Смотрим вывод:

[user@mgt1 ~]$ cat myjob.o1234 
./test: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory
 
============ Begin epilogue script =============
ssh to: n134 and cleanup /tmp dir
============ End epilogue script =============
 
============ Begin epilogue script =============
ssh to: n134 and cleanup /tmp dir
============ End epilogue script =============

Пример запуск приложения на нескольких нодах

TODO

Ссылки

cluster/запуск_приложений_на_кластере.txt · Последнее изменение: 2013/08/30 18:50 — artamonov