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

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

     Даний посібник призначено для користувачів обчислювального кластера ІТФ ім. М.М. Боголюбова. Керівництво містить мінімально необхідний обсяг інформації для роботи на кластері ІТФ: опис процесу реєстрації, відомості по роботі в ОС 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:<source_folder> user@another_comp:<destination _folder>

scp          user@comp:<source_folder> user@another_comp:<destination _folder>


     Нижче представлений приклад команди в 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/

 

<< наверх >>