Параллельные вычисления в ИММ УрО РАН
 
 

КРАТКАЯ ИНСТРУКЦИЯ
ПОЛЬЗОВАТЕЛЯ ПО ПОДГОТОВКЕ И ЗАПУСКУ ПРОГРАММ
НА ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСАХ ИММ УрО РАН

 

Доступ к серверам
Запуск задач на:

Доступ к вычислительным ресурсам.

  1. Получить login (имя пользователя) и пароль для доступа на сервер
Имя пользователя и пароль выдаются администратором серверов.

  1. Установить на рабочий компьютер программу PUTTY

Доступ к серверам осуществляется через протокол SSH. Этот протокол используется для терминального доступа к командной строке (собственно SSH – « secure shell »). Для работы с командной строкой рекомендуется программа putty.Эта программа позволяет единожды ввести адрес сервера и, в дальнейшем, выбирать его из списка сессий. В настройках putty необходимо указать протокол SSH. При первом соединении с сервером программа выдает предупреждение о том, что ключ шифрования сервера ранее не использовался, и предлагает его сохранить или отвергнуть (продолжить сеанс или прервать). Естественно надо выбрать продолжение сеанса.

Пример диалога при входе на сервер UM16 с именем xxxxx с компьютера ada.imm.uran.ru:

login as: xxxxx
Password:				  (ввести пароль)
Last login: Tue Sep 6 16:31:23 2005 from ada.imm.uran.ru 

Вы можете изменить свой пароль в любое время, набрав команду passwd, например:

 
[~@um16]:passwd
Password for xxxxx@IMM.URAN.RU:		   (наберите здесь свой текущий пароль)
Enter new password:			   (наберите новый пароль)
Enter it again:				   (повторите новый пароль)
Password changed.			   (успешная смена пароля)

Для того чтобы защитить свою учетную запись, придерживайтесь следующих рекомендаций:
- используйте пароль не менее, чем из 6 букв и цифр и храните его в секрете;
- один раз в полгода меняйте свой пароль;
- никогда не оставляйте активный терминал без внимания, всегда выходите (logout) со своего терминала (заканчивайте сеанс) прежде, чем покинуть его;
- обязательно сообщайте о любом неправильном использовании или злоупотреблении системному администратору, иначе доступ к серверу будет закрыт.

Для того, чтобы завершить сеанс работы на сервере, выполните команду logout.
Для дальнейшей работы полезно познакомиться хотя бы с некоторыми командами UNIX или почитать об OC LINUX.

Запуск задач на кластере

  1. Переписать тексты программ на сервер.

Для этого используйте программу WinSCP

При копировании файлов (протоколы SCP – “secure copy ” и SFTP – “ secure ftp ”) в настройках WinSCP рекомендуется выбрать протокол SFTP. Программа WinSCP позволяет сохранить имя пользователя и пароль. При первом соединении с сервером программа выдает предупреждение о том, что ключ шифрования сервера ранее не использовался, и предлагает его сохранить или отвергнуть (продолжить сеанс или прервать). Естественно, надо выбрать продолжение сеанса. Программа WinSCP может использоваться как самостоятельное приложение и как плагин для других программ проводников, например для Far Commander.

Тексты программ и данные для задачи можно записать в отдельный каталог, тогда вся информация по этой задаче будет сохраняться в этом каталоге (объектные модули после трансляции текстов программ, файл с сообщениями об ошибках, выходные файлы).

На сервере существует понятиe домашнего каталога, это каталог с именем /home/имя_пользователя. При работе с командной строкой этот каталог становится текущим после установления терминального соединения. Программа WinSCP может запоминать последний посещенный в предыдущей сессии каталог. Поэтому важно следить, в какой каталог производится копирование.

После копирования необходимо перейти в рабочий каталог, выполнить компиляцию программы и ее запуск.

  1. Компиляция программ.

Для удобства работы можно воспользоваться оболочкой Midnight Commander (очень напоминает FAR или NC), введя в командной строке mc.По умолчанию на всех главных узлах установлен некоторый нобор компиляторов и библиотек. При выполнение входа на вычислитель каждому пользователю на экран выдается информация об установленных и достпуных ему компиляторах и библиотеках, а также дополнительная служебная информация. Например:

login as: xxxxx
Password:				  (ввести пароль)
Last login: Tue Sep 6 16:31:23 2005 from ada.imm.uran.ru 

                Информация о кластере UM64

По четвергам, с 9:00 до 13:00 на кластере проходят
технические работы. Запуск задач на это время 
приостанавливаться.

Готовые библиотеки для решения СЛАУ:
    Intel MKL   /opt/intel/mkl/9.1/
    ATLAS       /opt/atlas

Доступные компиляторы:
    GNU (gcc, g++ - версии 4.1.1)
    PGI (pgcc, pgcpp, pgf77, pgf90, pgf95 - версии 6.2)
    Intel (icc, ifort - версии 9.1)

Реализация библиотеки MPI:
    MPICH2     (PGI)
    OPEN MPI   (PGI)

По умолчанию используется библиотека MPICH2 вместе с компилятором PGI
Для смены компиляторов и библиотеки MPICH используйте команду mpiset.

Об изменениях в программном обеспечении кластера можно ознакомиться
на сайте: http://parallel.imm.uran.ru

По всем вопросам обращайтесь:
тел.:   8(343)375-35-11
e-mail: parallel (at) imm.uran.ru

Компиляция выполняется командами:

  • mpicc для программ на Си
  • mpiCC для программ на C ++
  • mpif77 для программ на фортране77
  • mpif90 для программ на фортране90

Для файлов на Си и C++ важно расширение имени файла, для языка С это .c и для языка С++ расширения файла должно быть .cxx.

В командной строке задается список файлов, которые надо откомпилировать, и имя выходного файла. Для удобства, сообщения об ошибках компиляции желательно перенаправить в файл. Например, если наша программа должна называться outprog и собирается из файлов in1.c и in2.c, находящихся в каталоге proj, то необходимо выполнить следующие действия:

cd proj
mpicc –o outprog in1.c in2.c 2>errors.log

Сообщения об ошибках компиляции попадут в файл errors.log. Файл с ошибками можно скопировать, используя WinSCP, на свою машину и просмотреть в текстовом редакторе (Notepad не подходит из-за различия в формате строк, а Wordpad справляется хорошо) или открыть прямо на вычислителе с использовнием mc. В командной строчке файл можно пролистать командой:

less errors.log 

При пролистывании используются клавиши <Space> - следующая страница, <b> - предыдущая страница, <q> - выход из просмотра.

Если необходимо подключить дополнительные библиотеки, то необходимо в строку компиляции добавить опцию – l имя_библиотеки , например, библиотека BLAS подключится так:

mpicc –o outprog in1.c in2.c 2 -lblas 2>errors.log 

Если программа скомпилировалась успешно, создастся файл outprog. Это можно посмотреть в WinSCP, не забыв обновить список файлов в окошке или в командной строке командой ls , которая выдает список файлов.

  1. Запустить программу на счет.

Теперь программу можно поставить в очередь задач командой mpirun c параметрами –np число процессоров и –maxtime время предполагаемого счета в минутах. Чем больше та и другая величины, тем дольше придется ждать запуска задачи. Например, запустим нашу задачу на 8 процессорах, ограничив время счета 30-ю минутами:

mpirun –np 8 –maxtime 30 outprog

Внимание! До тех пор, пока задача не просчиталась, нельзя ее перекомпилировать, удалять исполняемый файл и менять входные данные.

Задачи в очереди именуются как имя_программы.номер. Номер обычно равен 1 (например, outprog .1). Несколько задач с возрастающими номерами появятся, если ставить программу в очередь несколько раз, не дожидаясь пока предыдущий вариант запустится и завершится.

За очередью задач можно следить с помощью команды mqinfo , которая выдает информацию о завершившихся, выполняющихся и ждущих задачах, а также о числе доступных процессоров. Иногда часть процессоров может быть отключена от работы; в этом случае задачи, рассчитанные на максимальное число процессоров, запускаться не будут. В выводе программы mqinfo строка информации о процессорах выглядит так:

Free: 0 proc. Available: 28 Locked: 4 

При необходимости можно удалить задачу из очереди командой mqdel имя_задачи. Например:

mqdel outprog.1 

После запуска программы создается каталог с именем, совпадающим с именем задачи в очереди, т.е. имя_программы.номер (outprog.1 для нашего примера). В этот каталог помещаются файлы manager.log и errors с сообщениями о процессе запуска задачи и возникших ошибках, а также файлы output , output 1 , output 2 и т.д., в которые перенаправляется стандартный вывод программы со всех использованных процессоров. Если задачу запустить повторно, то файлы в этом каталоге будут перезаписаны.

Запуск задач на суперкомпьютере

На данный момент в распоряжении ИММ УрО РАН имеется один суперкомпьютер - это Fujitsu-Siemens с утсановленной OC Solaris. При работе на нем используется оболочка deco. Компиляция программ, использующих MPI , выполняется командами:

  • mpicc для программ на Си
  • mpiCC для программ на C ++
  • mpif77 для программ на фортране77
  • mpif90 для программ на фортране90
Пример запуска компилятора:

mpicc –o outprog in1.c in2.c 2>errors.log 

Запуск программ, использующих MPI , производится командой mpirun c параметром – np число процессоров (от 1 до 8)

mpirun –np 8 outprog 

Запуск происходит немедленно, очередь задач не поддерживается. Компиляция программ, использующих OpenMP , выполняется программами:

  • cc для программ на Си
  • cc для программ на C ++
  • f77 для программ на фортране77
  • f90 для программ на фортране90
Для этих компиляторов можно задать флаг –xautopar для автоматического распараллеливания:

cc –o outprog -xautopar in1.c in2.c 2>errors.log 

Перед запуском программы набрать в командной строке команду:

export OMP_NUM_THREADS=8 

Эта команда задает число процессоров для автоматического распараллеливания. Сам запуск выполняется так:

./outprog 

./ - нужны для явного указания того, что исполняемый файл берется из текущего каталога. Команды трансляции, компиляции, постановки задачи в очередь на выполнение и другие часто используемые команды с большим числом параметров можно сохранить в файлах и выполнять эти файлы как bat-файлы.

Внимание! Пользователям без опыта работы в области параллельных вычислений очень рекомендуем ознакомиться со следующими инструкциями:

1. Руководство пользователя системы МВС-1000/16
(А.В. Баранов,А.О. Лацис,C.В. Сажин,М.Ю. Храмцов)

2.Краткая инструкция пользователя по подготовке и запуску программ на МВС-1000/16
(А.В.Баранов, А.О.Лацис, C.В.Сажин, М.Ю.Храмцов)

3.Инструкция прикладному программисту по коммуникационной среде TCP Router для
МВС-1000/16
( А.О. Лацис)