- •Лекція 7. Grid-портал для доступу користувачів до ресурсів і прикладних програм Grid
- •10.1 Будова кластера
- •10.2 Організація мережі обчислювального кластеру
- •10.2.1 Мережеві карти
- •10.2.2 Комутатори
- •10.2.3 Мережеве забезпечення кластеру.
- •10.2.4 Мережева файлова система
- •10.2.5 Конфігурація сервера
- •10.2.6 Конфігурація клієнтів
- •10.2.7 Ssh, беспарольный доступ
- •10.3 Розпаралелювання програм
- •10.3.1 Варіанти декомпозиції
- •10.3.2 Тривіальна декомпозиція
- •10.3.3 Функціональна декомпозиція
- •10.3.4 Декомпозиція даних
- •10.3.5 Regular Domain Decomposition
- •10.3.6 Сітка процесів
- •10.3.7 Зміна елементів даних
- •10.3.8 Область перекриття
- •10.3.9 Граничний обмін
- •10.3.10 Деталізація
- •10.4 Паралельна віртуальна машина (pvm)
- •10.4.1 Взаємодія завдань у pvm
- •10.4.2 Управління завданнями
- •10.4.3 Передача повідомлень
- •10.4.4 Архівування даних
- •10.4.5 Установка pvm
- •10.4.6 Адміністрування pvm
- •10.5 Інтерфейс передачі повідомлень (mpi)
- •10.5.1 Встановлення системи mpi
- •10.5.2 Конфігурація кластеру mpich
- •10.5.3 Конфігурація кластеру lam/mpi
- •10.5.4 Конфігурація кластеру OpenMp
- •10.5.5 Компіляція і виконання
- •10.5.6 Загальна організація mpi
- •Лекція 8. Grid-застосування
10.5.2 Конфігурація кластеру mpich
На відміну від PVM опис кластеру виконується не командами системи, а за допомогою редагування відповідного конфігураційного файлу. Для Linux-системи це файл /usr/local/mpich-1.2.6/ch_p4/share/machines.LINUX. Цей файл містить просте перерахування комп'ютерів, що входять у кластер і може виглядати наступним чином:
server
node1
node2.mydomain.com
192.168.1.33
node4: 2
Тобто, може використовуватися або коротке ім'я вузла, або доменне ім'я вузла, або його ip-адреса. Правило: один вузол - один рядок. В описі вузла "node4" у прикладі був використаний модифікатор ": 2". Це означає, що в якості четвертого вузла використовується двопроцесорна (SMP) машина.
Файл machines.LINUX повинен бути однаковим на всіх вузлах кластеру. Для перевірки працездатності MPI необхідно запустити скрипт / usr/local/mpich-1.2.6/ch_p4/sbin/testmachines:
/usr/local/mpich-1.2.6/ch_p4/sbin/testmachines-v LINUX
Як єдиний параметр потрібно вказати архітектуру перевіряючиї машини кластеру (у нашому випадку LINUX). У разі нормального завершення всіх тестів висновок на консоль повинен мати приблизно такий вигляд:
[User @ server sbin] #. / Tstmachines-v LINUX
Trying true on server ...
Trying ls on server ...
Trying user program on server ...
Trying true on node1 ...
Trying ls on node1 ...
Trying user program on node1 ...
Trying true on node2 ...
Trying ls on node2 ...
Trying user program on node2 ...
[User @ server sbin] #
Скрипт tstmachines, намагаючись перевірити доступність вузла кластеру, послідовно намагається запустити на ньому програми /bin/true, /bin/ls й певну налаштовувану програму /usr/local/mpich1.2.6/ch_p4/sbin/tstfoo. Оригінальний текст програми tstfoo на мові C виглядає так:
main () (return 0;)
10.5.3 Конфігурація кластеру lam/mpi
Абревіатура LAM в назві пакету розшифровується як "Local Area Machine", що вказує на початкову орієнтацію пакету у використання його для кластера, побудованого з мережі робочих станцій.
Перш ніж MPI програми можуть бути запущені на виконання в системі кластера повинна бути віртуальна машина LAM. Зазвичай цей процес називається "завантаження LAM". Успішно виконаний процес завантаження віртуальної машини встановлює в системі операційне середовище, названу "всесвіт LAM" (LAM universe). Він може складатися як з декількох машин, так і з однієї машини. В останньому випадку LAM може бути використана для симуляції паралельної машини, наприклад для налагодження програм.
Всесвіт LAM описується в файлі схеми завантаження (boot schema file), який містить інформацію про те, які робочі станції входять у віртуальну машину. Файл схеми завантаження, якому в подальшому ми дамо ім'я hostfile, є простим текстовим файлом, що містить адреси машин, одна адреса в одному рядку. Місце розташування цього файлу може бути будь-яке. Зміст його може бути наприклад таким:
# My boot schema
node1.cluster.example.com
192.168.1.123
node3.cluster.example.com cpu = 2
Перший рядок - це коментар. Решта рядки - це перерахування машин, що входять у кластер. Перша машина задана доменним ім'ям. Посилання на другу машину задана її ip-адресою. Третя машина також описана доменним ім'ям з параметром "cpu = 2". Параметр цей означає, що машина node3 є двопроцесорним SMP комп'ютером.
Для завантаження LAM використовується команда lamboot, запуск которрой виглядає наступним чином:
[User @ server yuri] $ lamboot-v-ssi boot rsh. / Hostfile
LAM 7.0.6/MPI 2 C + + / ROMIO - Indiana University
n-1 <29699> ssi: boot: base: linear: booting n0 node1.cluster.example.com)
n-1 <29699> ssi: boot: base: linear: booting n1 (192.168.1.123)
n-1 <29699> ssi: boot: base: linear: booting n2 (node1.cluster.example.com)
n-1 <29699> ssi: boot: base: linear: finished
Для успішного запуску LAM повинні бути виконані наступні умови:
1) Всі машини, описані в hostfile повинні бути включені і доступні по мережі.
2) Користувач повинен мати безпарольний доступ до цих машин по протоколу SSH.
3) Вихідні коди системи LAM на цих машинах повинні знаходиться в каталогах, зазначених у змінній оточення PATH.
4) Якщо машина описана доменним ім'ям, то вона повинна бути прописана в системі DNS або в системному файлі hosts.
Переглянути поточну конфігурацію кластеру можна за допомогою команди lamnodes:
[User @ server yuri] # lamnodes
n0 node1.cluster.example.com: 1
n1 192.168.1.123:1
n2 node3.cluster.example.com: 2
Зупинити роботи LAM-всесвіту можна командою lamhalt