Запуск графічного призначеного для користувача інтерфейсу виробляється з використанням технології X Window. наступною командою:
Графічний інтерфейс повинен запускатися тільки на вузлах кластера, за допомогою інтерактіиного режиму PBS (# 'qsub -I -X ... #'), але не на интерфейсном сервері.
Загальні відомості
Є кілька варіантів запуску MATLAB-програм з використанням кластера:
Запуск MATLAB-програм в пакетному режимі на окремих вузлах. Для цього в описі сценарію запуску завдання необхідно викликати MATLAB командою
за умови, що в поточній директорії є файл myfunc.m. в якому визначена функція myfunc. У цьому випадку число одночасно запущених розрахунків обмежена числом наявних у нас ліцензій. Можна запустити одночасно п'ять розрахунків.
Компіляція програм MATLAB в виконувані файли для запуску на будь-якій кількості комп'ютерів. Для цього використовується компілятор Matlab Compiler. Для запуску цього компілятора потрібна окрема ліцензія.
Запуск в паралельному режимі з використанням розподілених масивів і тих функцій ядра MATLAB, для яких існує паралельна реалізація. Для цього необхідно створити масив, який буде передаватися в якості аргументу функцій MATLAB як розподілений (distributed). Цей варіант вимагає змін в MATLAB-програмою. Детальніше можна прочитати в документації до Parallel Computing Toolbox. У цьому режимі можна використовувати 16 і більше паралельних процесів.
Мабуть, найпростіший спосіб, це спосіб, що не вимагає компіляції, тобто спосіб № 1. Про нього докладніше розказано в наступному розділі.
Запуск MATLAB-програм в пакетному режимі
Просту програму на matlab можна запустити в пакетному режимі. Як приклад візьмемо таку програму:
Ця програма генерує випадкову квадратну матрицю, обчислює вектор її власних значень і записує цей вектор в файл eig.txt.
Запишемо цю програму в файл myfunc.m,
в тій же директорії створимо файл для запуску розрахунку run_myfunc.sh такого змісту:
через деякий час після постановки розрахунку в чергу командою qsub run_myfunc.sh в цій же директорії буде створено файл eig.txt. містить п'ять речових або комплексних чисел, обчислених з одинарної точністю.
MATLAB Compiler
Нижче наведені посилання на офіційні сторінки з описом поточної версії MATLAB Compiler. Хоча там розглядається новішої версії, ніж встановлена у нас, посилання все одно можуть бути корисні:
Кожен користувач перед першим використанням MATLAB Compiler повинен створити персональний файл з параметрами компіляції. Для цього на интерфейсном сервері потрібно виконати:
Команда виведе на екран:
потрібно ввести # '1 # 'І натиснути кнопку Enter.
В результаті файл зі стандартними настройками компіляції буде скопійований в домашню директорію користувача в файл # '
За замовчуванням для компіляції використовується системний компілятор GCC, але при необхідності файл з опціями може бути скоректований користувачем.
Запустіть інтерактивну завдання (# 'qsub -I -X ... #') для отримання доступу до вузла кластера.
Запустіть на вузлі MATLAB GUI. переведіть вгорі на закладку # 'APPS #' і натисніть на стрілочку праворуч від рядка з іконками:
У випадаючому списку в розділі # 'Application deployment #' натисніть на іконку # 'Application Compiler # '. В результаті відкриється вікно програми MATLAB Compiler.
Натисніть на іконку # '+ #' Одразу після поля # 'Add main file # ', Виберіть файл MATLAB #' а з кодом. Наприклад, нехай це буде # 'Myfunc.m #'
Натисніть на зелену іконку # 'Package # 'Справа.
Коли компіляція завершиться, відкриється вікно з трьома 3 директоріями, що містять 3 варіанти скомпільованої програми:
або, якщо дистрибутив просмотров за:
Запуск скомпільованої додатки з директорії # 'For_testing #' здійснюється за допомогою скрипта # 'Run_myfunc.sh #' (назва скрипта залежить від назви модуля), якому в якості параметра необхідно передати шлях до встановленого MCR:
скрипт # 'Run_myfunc.sh #' налаштовує необхідні змінні оточення у відповідності з шляхом до встановленого MCR і потім запускає знаходиться поруч виконуваний бінарний файл # 'Myfunc #'.
Parallel Computing Toolbox
Технологія, що дозволяє распараллеливать виконання програм на кілька процесорних ядер, а також використовувати NVidia GPU.
Distributed Computing Server
Надає можливість запуску програм MATLAB (в тому числі, распараллелівать на кілька обчислювальних вузлів) на кластері, через різні планувальники, включаючи PBS Pro. є розвитком # 'Parallel Computing Toolbox #'. Користувач працює через стандартний графічний інтерфейс MATLAB (далі в тексті # 'Клієнт #') і через нього отримує додаткові обчислювальні ресурси на кластері. На нашому комплексі можливі два варіанти використання, настроюються різними способами:
Клієнт працює на вузлі кластера, користувач взаємодіє з ним з використанням технології X Window. Цей спосіб є кращим.
Клієнт працює на персональному комп'ютері користувача, з якого є доступ до кластеру по протоколах SSH / SFTP.
Налаштування клієнта на кластері
За допомогою інтерактивної завдання PBS потрапити на вузол і запустити MATLAB через X Window.
У закладці Home відкрити Environment → Parallel → Manage Cluster Profiles.
У вікні створити профіль: Add → Custom → PBS Pro
натиснути # 'Edit # ', Змінити такі параметри:
JobStorageLocation - директорія для тимчасових файлів. В принципі, можна залишити незаповненим, але краще вказати піддиректорію в своїй домашній директорії або в робочій області.
NumWorkers = число, скільки ядер процесора буде запитуватися.
Також зверніть увагу на SubmitArgumet і ResourceTemplate - з їх допомогою можна передавати команді # 'Qsub #' додаткові параметри, а також змінювати правило генерації # 'Select #' для qsub.
Переключитися на закладку # 'Validation results #'. Натиснути кнопку # 'Validate # '. Всі тести повинні завершитися зі статусом # 'Passed #'.
При бажанні через меню вікна # 'Cluster Profiles Manager #' можна перейменувати налаштований профіль і встановити його як # 'Профіль за замовчуванням #'.
Налаштування клієнта на ПК
Якщо клієнт працює на операційній системі сімейства Windows, необхідно перетворити закриту частину персонального RSA ключа в формат, який використовується в Unix-системах:
кнопкою # 'Load #' завантажити свій раніше створений .ppk-файл
Зберегти в потрібному форматі: Conversion → Export OpenSSH key
Одержаний файл повинен містити приблизно таке:
Перейти в директорію на персональному комп'ютері, в яку встановлений MATLAB
Скопіювати вміст піддиректорії # 'Toolbox \ distcomp \ examples \ integration \ pbs \ nonshared # 'В # 'Toolbox \ local \ # '
відкрити файл # 'Toolbox \ local \ getSubmitString.m # 'І відредагувати, замінивши
Запустити MATLAB, якщо вже працював - перезапустити.
У закладці Home відкрити Environment → Parallel → Manage Cluster Profiles.
У вікні створити профіль: Add → Custom → Generic
натиснути # 'Edit # ', Змінити такі параметри:
JobStorageLocation - директорія для тимчасових файлів на персональному комп'ютері
NumWorkers = число, скільки ядер буде запитуватися.
замість # '/ Mnt / storage / home / hpcuser / matlab #' вкажіть шлях до директорії для тимчасових файлів на кластері - або в своїй домашній директорії, або в своїй робочій області.
замість # '/ Mnt / storage / home / hpcuser / matlab #' вкажіть шлях до директорії для тимчасових файлів на кластері - або в своїй домашній директорії, або в своїй робочій області.
Переключитися на закладку # 'Validation results #'. Натиснути кнопку # 'Validate #'. Вас попросять ввести свій логін на кластері, шлях до створеного раніше файлу із закритою частиною ключа і парольний фразу до цього файлу. Всі тести повинні завершитися зі статусом # 'Passed #'.
При бажанні через меню вікна # 'Cluster Profiles Manager #' можна перейменувати налаштований профіль і встановити його як # 'Профіль за замовчуванням #'.