Doc matlab matlab інформаційно-обчислювальний центр новосибірського державного університету

Запуск графічного призначеного для користувача інтерфейсу виробляється з використанням технології 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 #' і натисніть на стрілочку праворуч від рядка з іконками:

Doc matlab matlab інформаційно-обчислювальний центр новосибірського державного університету

У випадаючому списку в розділі # '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 #' можна перейменувати налаштований профіль і встановити його як # 'Профіль за замовчуванням #'.