Центр колективного користування
«Ресурсний центр для грід- та хмарних технологій»
Інституту теоретичної фізики ім.М.М.Боголюбова НАН України
Обчислювальний грід-кластер

Посібник користувача кластера

     Даний посібник призначено для користувачів обчислювального кластера ІТФ ім. М.М. Боголюбова. Керівництво містить мінімально необхідний обсяг інформації для роботи на кластері ІТФ: опис процесу реєстрації, відомості по роботі в ОС Linux (вхід в систему, робота з каталогами та файлами, моніторинг) і роботі з MPI програмами і непаралельними програмами на кластері (компіляція, запуск, зупинка, робота з чергами). У тексті під терміном паралельна програма маються на увазі тільки MPI програми.
      Команди змінні командного інтерпретатора, назви програм, листинги, безпосереднє введення/виведення консолі виділені жирним шрифтом.
      Питання щодо роботи кластера слід відправляти за адресою: helpdesk@bitp.kiev.ua або звертатися в к. 233
      Остання версія керівництва (у фоматі Windows Word) знаходиться на кластері: ftp://clusterui.bitp.kiev.ua/pub/Cluster_manual.doc.
      Питання щодо цього документа (помилки, неточності, пропозиції) можна відправляти на e-mail: helpdesk@bitp.kiev.ua

           Зміст

Введення

1. Реєстрація

2. Вхід в систему

2.1 Вхід з Windows-машини

2.2 Вхід з терміналу Linux 

3. Копіювання файлів

4. Робота на кластері

4.1 Робота з mc

4.2 Редагування файлів 

4.3 Компіляція MPI програм

4.4 Запуск програм

4.5 Черги

4.5.1 Типи черг

4.5.2 Робота з чергами
4.5.3 Зупинка завдань 

5. Робота з непаралельними програмами 

6. WEB-інтерфейс доступу до кластеру

 

Введення 

     Базовий Linux кластер складається з 5-и двох процесорних комп'ютерів на процесорах Intel XEON. Вісім комп'ютерів об'єднані в обчислювальну ферму і не доступні для інтерактивної роботи користувача. Один двопроцесорний сервер на базі Xeon i5 з RAM 32 Gb, 10-ть серверів з RAM 64Gb і один c RAM 256Gb. Один комп'ютер є керуючим для обчислювальної ферми і до нього дозволений інтерактивний доступ користувачів для зберігання своїх програм. Є менеджер черг, який знаходиться на окремому сервері torque.bitp.kiev.ua.

     На всіх машинах встановлена ОС Linux дистрибутив, що співпадає з тим, що використовується в CERN - Scientific Linux 6.4 (SL6).

     До складу Scientific Linux 6.4 (SL6) входить необхідне програмне забезпечення для компіляції (C, C + +, Fortran 77), налагодження та виконання програм. Додатково встановлено програмне забезпечення для паралельних обчислень (компілятори: mpiCC, mpicc, mpif77).

     Запуск задач на рахунок, управління виконанням завдання і відправка результатів користувачеві виробляються засобами програмного забезпечення системи пакетної обробки завдань PBS.

     У випадку, якщо користувачеві необхідно додаткове програмне забезпечення (наприклад, ASIS (CERN), включаючи CERNlib, додаткові компілятори) необхідно звернутися до адміністратора кластера.

1. Реєстрація

     Для реєстрації користувачів на кластері необхідно заповнити форму наступного виду:

 

Рис.1 Реєстраційна форма

     У реєстраційній формі (Рис.1) користувач повинен заповнити ряд обов'язкових (виділених символом « * ») і не обов'язкових полів.

Прізвище, Ім'я, По батькові. Ці поля є обов'язковими.

Логін. Ім'я користувача, що застосовується для входу на кластер. Дозволено застосування тільки латинських букв і цифр. Мінімальний розмір цього поля 4 символу.

Пароль. Пароль для входу на кластер. Дозволено застосування тільки латинських букв і цифр. Мінімальний розмір цього поля 8 символів.

Адреса електронної пошти (повідомлення кластера). За цією адресою будуть відправлятися повідомлення пов'язані з одними завданнями.

Електронною поштою (контактний). За цією адресою будуть відправлятися організаційні повідомлення, пов'язані з реєстрацією користувача, помилки в роботі і т.п. Можна вказувати один і той же адресу в цьому і попереднє попередньому полі.

Повідомлення про зміни в роботі кластера. Якщо в цьому полі поставлений прапорець, то на контактну адресу електронної пошти буде періодично відправлятися інформація про зміни в роботі черг, профілактиці, оновлення програмного забезпечення.

(Заповнену заявку потрібно передати С.Я. Свистунову в к.422 або відправити поштою svistunov@bitp.kiev.ua)


2. Вхід в систему 

      Для роботи з системою користувач повинен мати свій обліковий запис на керуючому вузлі кластера. Реєстрація описана в попередньому розділі. Після реєстрації користувач отримує логін, пароль і домашню директорію. Якщо ім'я користувача, наприклад, буде maxim, то домашня папка знаходиться в /home/maxim.

      Зареєстрований користувачі мають має доступ до кластеру і можливість працювати на кластері з будь якого комп'ютера, що знаходиться знаходиться в локальній мережі інституту або в мережі Інтернеті. Доступ до кластеру здійснюється по протоколу SSH. Для входу в систему користувачеві необхідний адресу сервера clusterui.bitp.kiev.ua (194.44.37.136), а також логін і пароль, вказані в реєстраційній картці.

2.1 Вхід з ОС Windows-машини 

      Робота з системою здійснюється з безпечного протоколу SSH за допомогою якого-небудь SSH-клієнта. Рекомендується використовувати програму PuTTY, яку можна безкоштовно скачати за адресою http://www/chiark.greenend.org.uk/~sgtatham/putty/, або з FTP-сервера ftp://clusterui.bitp.kiev.ua/pub/putty.zip. Ця програма розповсюджується вільно і проста у використанні.

 
 

Рис.2 Вікно SSH-клієнта Putty


       Після запуску програми (Рис.2) користувач повинен вибрати протокол SSH і в полі «Host Name (or IP address)» вказати адресу сервера. Натискання на «Open» призведе до відправки запиту на підключення. У разі успішного підключення до сервера буде запропоновано ввести логін, а потім і пароль. При введенні пароля символи на екрані не відображаються. Якщо все введено правильно, то користувач автоматично опиниться в своїй домашній директорії.

 


Рис.3 Приклад SSH-сесії


      Робота в SSH-сесії відбувається в термінальному (текстовому, консольному) режимі. Необхідно пам'ятати, що консоль Linux, на відміну відміну від Вікна, розрізняє регістр символів, що вводять, тобто mydoc.txt і mydoc.TXT не одне і те ж. Після входу на екрані відображається консоль командного інтерпретатора в наступному форматі:
Ім'я_користувача@машина поточний_каталог як показано на Рис.3.
Також можна завантажити reg-файл putty.reg за адресою ftp://clusterui.bitp.kiev.ua/pub/putty.reg. Після додавання вмісту цього файлу до реєстру Windows, в списку збережених сесій PuTTY з'явиться сесія "clusterui.bitp.kiev.ua", вже налаштована для використання.

 

2.2 Вхід з терміналу Linux 

     У будь-який дистрибутив ОС Linux входить консольний SSH-клієнт. Для входу на кластер необхідно виконати консольну команду

ssh username@clusterui.bitp.kiev.ua

 

 

3. Копіювання файлів 

     При роботі користувачеві доведеться копіювати файли зі своєї машини на кластер (програми, вхідні дані, бібліотеки) і назад (листинги, результати розрахунків). Для цього існує два способи: через протокол SSH або через протокол FTP.

     Копіювання файлів по протоколу SSH є найбільш переважним при віддаленому доступі. Цей протокол забезпечує належний захист переданої інформації, при передачі по мережі вся інформація шифрується. У випадку з Windows машини для цього використовується утиліта pscp.exe (доступна там же, де і програма-термінал PuTTY). У разі Linux - консольна команда scp .

     Формат команди для цих утиліт практично однаковий:

pscp.exe user@comp: user@another_comp:

scp          user@comp: user@another_comp:

 

     Нижче представлений приклад команди в Windows, для копіювання в мережі інституту користувачем svistunov файла cluster_manual.tex, розташованого в директорії c:/cluster на локальному комп'ютері, в домашню директорію користувача на кластері.

pscp.exe c:/cluster_manual.tex svistunov@clusterui.bitp.kiev.ua:$HOME


      Першим обов'язковим параметром цієї команди є копійований файл-джерело. У показаному прикладі це c:/cluster_manual.tex. svistunov@clusterui.bitp.kiev.ua:$HOME - адреса приймача.

Формат адреси:
Ім'я_користувача@адрес_вузла_назначення: файл_чи_папка_приймач.

$HOME - є стандартною змінної оточення, що містить розташування домашньої папки користувача.

У даному випадку: $HOME еквівалентно /home/svistunov.

 


Рис.4 Приклад команди в Windows, для копіювання.


     Якщо або папка-джерело, або папка призначення знаходяться в тій системі, де ви виконуєте цю команду, то можна не вказувати ім'я користувача та адресу машини. Обидві команди підтримують опцію командного рядка -r, що дозволяють копіювати цілий каталог рекурсивно.

     Для копіювання файлів в робочу директорію на кластері або з робочої директорії на комп'ютер користувача передбачається використовувати FTP-сервіс. Увійшовши на FTP-сервер ftp://clusterui.bitp.kiev.ua під своїм ім'ям користувача і паролем, користувач потрапляє безпосередньо в домашній каталог, після чого може скачувати/закачувати файли.
     З міркувань безпеки, для роботи з особистими файлами необхідно використовувати протокол SFTP - Secure FTP. Цей протокол заснований на протоколі SSH і шифрує передані дані. Для роботи з цим протоколом в Windows, системі слід використовувати програму WinSCP (можна скачати за адресою ftp://clusterui.bitp.kiev.ua/pub/winscp551setup.exe).
     Інтерфейс програми WinSCP нагадує інтерфейс PuTTY. Для роботи з нею найпростіше перейти в розділ сесії (у дереві зліва, див. Рис.5) і натиснути кнопку Імпорт. Якщо у вас вже є збережена сесія в PuTTY, то таким способом її можна перенести в WinSCP.

 


Рис.5 Вікно клієнта WinSCP

 

     Для установки зв'язку з кластером потрібно вибрати сесію (показана на малюнку clusterui.bitp.kiev.ua) і натиснути кнопку Login. Після введення імені користувача і пароля то користувач автоматично опиниться в своїй домашній директорії.
     Сама робота з файлами може здійснюватися або через інтерфейс, подібний Norton/Total Commander, або подібний Windows Explorer (див. Рис.6).


Рис.6 Робота з файлами в WinSCP


      Крім захищеного FTP-сервера на кластері існує і звичайний, загальнодоступний FTP. На ньому зберігається різне програмне забезпечення, документація тощо. Доступ здійснюється за URL-адресою ftp://clusterui.bitp.kiev.ua/pub/.

 

 

4. Робота на кластері 

     Для роботи на кластері зручно користуватися файловим менеджером mc, який включає редактор текстових файлів. Універсальним способом роботи на кластері є робота через консоль. Обидва способи коротко описані нижче.

Навігація 

     Консоль

 

     На кластері користувачеві для збереження файлів доступний тільки його домашній каталог. Для роботи з файлами і каталогами існують декілька корисних команд (Табл.1)

Таблиця 1. Команди для роботи з файлами і каталогами

Команда

Опис

ls

Показати список папок і файлів в поточному каталозі

pwd

Показати ім'я поточного каталога

cd  назва_каталога

Змінити каталог

mkdir назва_каталога

Створити каталог

rm 

Видаляє файли. З опцією -r рекурсивно видаляє каталоги

clear

Очистка екрану

cp  що куди

Копіювання файлів і каталогів

locate

Пошук файлів

mv 

Переміщення файлу

cat

Вивід на екран вмісту файлу

grep

Пошук рядку в тексті

 

     Детальну довідку за цим командам, а також по всіх інших можна отримати, набравши в консолі man ім'я_команди. Більш розширену інформацію по більшості програм можна отримати, набравши info ім'я_команди.
     При роботі в консолі зручно користуватися клавішею автопідстановки Tab. Якщо, набравши кілька перших символів програми або файлу, користувач натисне на клавішу Tab, то система доповнить їх до повного імені, за умови, що є тільки єдиний варіант доповнення. Якщо варіантів декілька, то з'явиться їх список. Введення додаткових символів, які однозначно визначають потрібне ім'я, і натискання клавіші Tab призводить до вибору імені файлів або команд.

Приклади:
1) Визначення в якій папці знаходиться користувач.

[root@localhost etc] $ pwd

/etc

 

2) Перехід в домашній каталог.

 

[root@localhost etc] $ cd $HOME

 

3) Створення папки /mnt/buf/progr/np

[root@localhost etc] $ mkdir /mnt/buf/progr/np


4) Копіювання файлу blasqr.ps з поточної (домашньої) директорії у щойно створену. Перехід в цю директорію.

[root@localhost etc] $ cp ./blasqr.ps  /mnt/buf/progr/np

[root@localhost etc] $ cd   /mnt/buf/progr/np


5) Перебуваючи у створеній директорії перегляд виводу списку її вмісту.

[root@localhost np] $ ls

blasqr.ps 

 

4.1 Робота з mc 

     У роботі на кластері можна використовувати файловий менеджер Midnight Commander (mc) (Рис.7), який дуже схожий на FAR або Norton Commander.

     Цей файловий менеджер можна запустити з консолі: mc -ca.
      Ключ -ca необхідний для коректного відображення спеціальних символів в SSH-сесії



Рис.7 Файловий менеджер mc

 

4.2 Редагування файлів

mc-edit

     Користувачеві рекомендується основну частину вихідних файлів підготовляти на своїй локальній машині в звичних текстових редакторах. Для внесення невеликих змін у файли дуже добре підходить вбудований в mc редактор.
Для запуску цього редактора необхідно встановити курсор на цікавить файл і натиснути клавішу F4 (рис.7). Для створення і редагування нового файлу - «Shift + F4».
У цьому редакторі присутні всі основні засоби, наявні в подібних програмах: копіювання, вставка, пошук, заміна, підсвічування синтаксису, ряд інших.

Emacs, VІМ 

     Якщо необхідні більш складні засоби редагування, то можна використовувати редактори vi/vim i emacs. Обидва цих редактора мають більш ніж тридцятирічну історію і стали культовими у світі UNIX. Vim є більш простим (по функціональності), але менш наочним редактором. Основна функція Vim - робота з вихідними текстами програм. Emacs - це більш ніж редактор. З його допомогою можна здійснювати професійну верстку; набір, запуск та налагодження програм; прийом/відправлення електронної пошти і новин; навігацію по жорсткому диску; використовувати як щоденника та багато іншого.
      Недолік цих редакторів - досить складне управління (особливо VIM), яке не можна назвати інтуїтивно зрозумілим користувачам, які звикли до роботи в ОС Windows. За повним переліком доступних команд редакторів рекомендується звернутися до відповідних посібникам.

 

4.3 Компiляцiя MPI программ

 

     У встановленої реалізації MPI - LAM підтримується три мови програмування:

 

Компілятор

Мова

mpicxx

C++

Mpicc

C

mpif77

Fortran – 77

 
      Основні параметри для всіх трьох компіляторів однакові (табл.2). У простому випадку скомпілювати С++ програму можна так:

[root@localhost test_sig] $ mpicxx -o test_sig ./test_sig.cpp


    Для Fortran – 77


[root@localhost test_sig] $ mpif77 -o test_sig ./test_sig.f


     Результатом виконання цієї команди буде виконуваний файл test_sig. Цей файл буде стандартним бінарним файлом сумісним з переважною більшістю систем.

Примітка:
     У OC Windows, виконувані файли мають певне розширення: exe, bat, cmd, com і ряд інших. Файли тільки таких типів можуть бути виконані. У Linux виконувані файли визначаються не їх розширенням, а іншим способом.

      Нижче представлений приклад компіляції файлу test_sig.cpp з найчастіше використовуваними оптимiзуючими параметрами:

[root@localhost test_sig] $ mpic++ -O3 –funroll –loops –marh=pentium4 –mfpmath=sse

 –msse2 –mmmx –o  test_sig ./test_sig.cpp


./test_sig.cpp - файл. Містить вихідний код програми. У UNIX для вказівки того, що файл знаходиться в поточній директорії, потрібно ставити префікс « ./ ».
Файл test_sig отриманий таким чином буде оптимізований для обчислень на кластері. Враховуючи специфіку додатків, особливу увагу приділено параметрах, що відповідають за оптимізацію обчислень з плаваючою точкою.
Зазвичай ці параметри оптимізації дозволяють програмі працювати істотно швидше.
Для продуктивної роботи настійно рекомендується ознайомитися з повним переліком команд компіляторів (info gcc).
 

 

Таблиця 2. Деякі параметри компіляторів
 

-O3

Включення повної автоматичної оптимизації компілятора

–funroll –loops

Включення розкрутки циклів

–marh=pentium4

 –mfpmath=sse

–msse2

Ця группа параметрів вказує компілятору використовувать команди доступні починаючи з Pentium 4. Обчислення з плаваючою точкою будуть проводитися за допомогою набору інструкцій SSE2.

–mmmx

Дозвіл використання набору інструкцій mmx.

–o  имя_файла

Ім'я вихідного файлу. Якщо цей параметр не вказаний, то за замовчанням готова до виконання програма буде називатися a.out

4.4 Запуск програм

    Запуск MPI программ

    Для запуску MPI програм в черзі PBS використовується Intel Cluster Toolkit Compiler Edition.

 

4.5 Черги

4.5.1 Типи черг


На поточний момент на кластері діють наступні черги:

· short, long для запуску завдань на кластері;
· черга edu і arcedu для запуску завдань відповідно з проміжного програмного забезпечення GLITE і ARC навчального кластера;
· черга nordug для запуску завдань з проміжного програмного забезпечення ARC;
· черга bigmem для запуску завдань на кластері для яких потрібно великі обсяги оперативної пам'яті.

Політика черг представлена в таблиці.

 

Таблиця 3. Політика черг

 

Коротка

Стандартна

Glite задач (навчальна)

ARC задач (навчальна)

ARC задач

Ресурсоміских задач

Ідентифікатор

short

long

edu

arcedu

nordug

bigmem

Максимальна довготривалість задачі

1 година

15000 годин

5 годин

5 годин

500 годин

15000 годин

Ліміт задач в черзі

400

800

40

40

50

100

Ліміт задач в черзі від одного користувача

150

90

40

40

50

80

Ліміт запущених задач

60

70

5

5

5

16

Ліміт запущених задач від одного користувача

40

35

5

5

5

10

Час роботи

цілодобово

цілодобово

цілодобово

цілодобово

цілодобово

цілодобово

Пріоритет

100

50

30

30

30

90

Доступні вузли

Всі

alice20,22-23, 25-26

alice6

alice20,22-23, 25-26

alice24

alice32-42

     Просування завдань у черзі відбувається послідовно. Наступне завдання вибирається з черги, яка має більший пріоритет. Стандартна і налагоджувальні черзі подібні. Вони доступні цілодобово і служать для запуску нетривалих завдань переважно отладочного характеру. Черга для запуску паралельних завдань зараз працює цілодобово зважаючи малого їх кількості.

4.5.2 Робота з чергами 

    Для отримання інформації про черги і завданнях користувача існує команда qstat. Виконання цієї команди без параметрів покаже всі завдання користувача і їх стан.

[svistunov@clusterui test_sig] $ qstat

 

Job id                   Name                      User                                Time  Use  S  Queue

-------------------   -------------------      ------------------------ ----------------------------------

32699.torque              svistunov1231          svistunov                         00:01:18    R   long

32697.torque              svistunov1232          svistunov                                           Q   edu


Job id - Ідентифікатор завдання, отриманий при виконанні.
Name - Ім'я завдання. За замовчуванням складається з імені користувача і часу запуску програми.
User - Ім'я користувача запустив задачу.
Time Use - Процесорний час, витрачений завданням.
S (State) - Стан завдання: R - завдання виконується, Q - очікує в черзі.
Queue - черга.
     У даному випадку користувачеві svistunov належать два завдання, одна з яких (32699.torque) виконується в довгій черзі, а друга (32697.torque) очікує в нічний черги.
Команда qstat з параметром дасть більш розширену інформацію про завдання.

 

[svistunov@clusterui test_sig] $ qstat -a

 

     Виконання qstat з параметром -Q дасть коротку інформацію по всіх черг і завданням:
 
 

Рис.8 Виконання qstat з параметром -Q


Queue          - назва черги;
Memory     - максимально допустима пам'ять, використовувана завданнями черзі;
CPU Time   - максимально допустиме процесорний час, що використовується завданнями черги;
Walltime     - максимально допустиме реальний час, що використовується завданнями черзі;
Node            - максимальна кількість нодів на задачу;
Run              - кількість запущених завдань;
Que              - кількість запланованих завдань;
Lm               - максимальна кількість одночасно запущених завдань у черзі;
State             - статус черги (Enabled/Disabled, Running/Stopped).


      Отримання інформації про завдання інших користувачів неможливо, можна лише побачити загальне число запланованих і запущених завдань.
Виконання qstat з параметром -q дасть зведену статистику по всіх черг.

4.5.3 Зупинка завдань 

    Зупинка програми проводиться командою qdel ідентіфікатор_задачі:

[svistunov@clusterui test_sig] $ qdel  32699.torque


     Цією командою завдання, що стоїть у черзі, забирається з неї, а завдання, що виконується знімається з виконання. Далі почне виконуватися наступна по черзі і пріоритету завдання.
     Завдання знімається в перебігу деякого часу т.ч. при виклику qstat безпосередньо після qdel віддаленe завдання все ще може бути відображенe в таблиці.

 

5. Робота з непаралельними програмами 

     На кластері можна компілювати і виконувати звичайні непаралельні програми. При виконанні непараллельной програми виділяється один вузол кластера, який вибирає система. Запускати на кластері можна будь-які бінарно сумісні програми. Тип черзі вказується у відповідному полі скрипт-файлу

#PBS  - q dque@clusterui, (тут dque - ідентифікатор черги за замовчуванням).

 

    Компілювання програм безпосередньо на кластері здійснюється стандартними засобами: g++, GCC, g77 і т.д. аналогічно тому, як описано в розділі 4.3.

     Нехай програма sample користувача svistunov знаходиться в папці /home/svistunov/dir_name. Тоді запуск цієї програми здійснюється командою:

[svistunov@clusterui svistunov ] $ qsub ./sample_job

де sample_job скрипт видy:

#
# Приклад скрипта sample_job для запуску непараллельной
# програми sample за допомогою qsub
#
# Вказівка скидання потоку виводу (о) і потоку помилок (е)
#PBSk oe
# Необхідна кількість вузлів (для непараллельного завдання = 1)
#PBS -1 nodes=1
# Чи завдання є перезапускаємою (задачею з контрольними точками)
# y - є , n - не є
#PBSr n
# Поштова адреса користувача
#PBSM user@bitp.kiev.ua
# Які повідомлення відправляти на вказану адресу?
# a - помилка у виконанні завдання
# b - початок виконання
# e - завершення виконання
#PBSm abe
# Ідентифікатор черги
#PBSq long@clusterui
# Назва завдання
#PBSN sample
# Вказівка необхідного командного інтерпретатора
#!/bin/sh
# Шлях до папки з програмою
export PATH=$PATH:/home/svistunov/dir_name
# Перехід в цю папку
cd /home/svistunov/dir_name
# Безпосередній запуск програми користувача
./sample

exit 0


sample_job являє собою звичайний скрипт командного інтерпретатора тобто в ньому допустимо використання змінних, циклів, умовних конструкцій і т.д. Відмінністю є передача параметрів системи диспетчеризації через коментарі особливого виду:

# PBS -параметр значення

     Ці коментарі повинні розташовуватися на початку файлу до вказівки основного командного інтерпретатора.

 

 

6. WEB-інтерфейс доступу до кластеру 

      Сайт кластера знаходиться за посиланням http://horst-7.bitp.kiev.ua.
Вибравши «Вхід до системи» відкриється вікно введення логіна і пароля користувача.
Після авторизації користувач потрапляє у свою домашню директорію.
Додаткова інформація щодо роботи з системою знаходиться на
http://horst-7.bitp.kiev.ua/management/