🗊Презентация Робота з суперкомп’ютером Інституту кібернетики Нан України

Категория: Технология
Нажмите для полного просмотра!
Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №1Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №2Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №3Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №4Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №5Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №6Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №7Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №8Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №9Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №10Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №11Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №12Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №13Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №14Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №15Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №16Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №17Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №18Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №19Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №20Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №21Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №22Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №23Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №24Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №25Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №26Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №27Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №28Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №29Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №30Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №31Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №32Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №33Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №34Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №35Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №36Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №37Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №38Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №39Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №40Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №41Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №42Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №43Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №44Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №45Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №46Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №47Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №48Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №49Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №50Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №51Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №52Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №53Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №54Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №55Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №56Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №57Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №58Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №59Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №60Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №61Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №62Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №63Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №64Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №65Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №66Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №67Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №68Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №69Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №70Робота з суперкомп’ютером Інституту кібернетики Нан України, слайд №71

Содержание

Вы можете ознакомиться и скачать презентацию на тему Робота з суперкомп’ютером Інституту кібернетики Нан України. Доклад-сообщение содержит 71 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Робота з суперкомп’ютером
Інституту кібернетики
Нан України
підготував студент 402 групи
Сорочан Олександр
Чернівці – 2015
Описание слайда:
Робота з суперкомп’ютером Інституту кібернетики Нан України підготував студент 402 групи Сорочан Олександр Чернівці – 2015

Слайд 2





1. Загальні відомості
Суперкомп’ютер – спеціалізована обчислювальна машина, яка значно переважає за своїми параметрами та швидкістю обрахунків більшість існуючих комп’ютерів.
Як правило, сучасні суперкомп’ютери насправді є великим числом потужних серверних комп’ютерів – «вузлів», з’єднаних між собою високошвидкісною магістраллю для отримання максимальної продуктивності. Такі суперкомп’ютери називають ще обчислювальними кластерами.
Найпоширенішим є використання однорідних кластерів, тобто таких, де всі вузли абсолютно однакові за своєю архітектурою й продуктивністю.
Описание слайда:
1. Загальні відомості Суперкомп’ютер – спеціалізована обчислювальна машина, яка значно переважає за своїми параметрами та швидкістю обрахунків більшість існуючих комп’ютерів. Як правило, сучасні суперкомп’ютери насправді є великим числом потужних серверних комп’ютерів – «вузлів», з’єднаних між собою високошвидкісною магістраллю для отримання максимальної продуктивності. Такі суперкомп’ютери називають ще обчислювальними кластерами. Найпоширенішим є використання однорідних кластерів, тобто таких, де всі вузли абсолютно однакові за своєю архітектурою й продуктивністю.

Слайд 3





Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах).
Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах).
Це може стати корисним у разі проведення великої кількості обчислень. Розділивши набір операцій між декількома процесорами, можна добитися більшої продуктивності, програма працюватиме менше часу.
У такому разі кажуть, що процес, породжений такою програмою, складається з декількох потоків, які виконуються паралельно, тобто без наперед визначеного порядку за часом.
Утворення декількох потоків часто призводить до додаткової задачі координації роботи між потоками, однак кінцевий результат виправдовує ці додаткові витрати.
Описание слайда:
Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах). Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах). Це може стати корисним у разі проведення великої кількості обчислень. Розділивши набір операцій між декількома процесорами, можна добитися більшої продуктивності, програма працюватиме менше часу. У такому разі кажуть, що процес, породжений такою програмою, складається з декількох потоків, які виконуються паралельно, тобто без наперед визначеного порядку за часом. Утворення декількох потоків часто призводить до додаткової задачі координації роботи між потоками, однак кінцевий результат виправдовує ці додаткові витрати.

Слайд 4





Сайт суперкомп’ютера Інституту кібернетики НАН України – http://icybcluster.org.ua/
Сайт суперкомп’ютера Інституту кібернетики НАН України – http://icybcluster.org.ua/
Описание слайда:
Сайт суперкомп’ютера Інституту кібернетики НАН України – http://icybcluster.org.ua/ Сайт суперкомп’ютера Інституту кібернетики НАН України – http://icybcluster.org.ua/

Слайд 5





Різноманітна інформація про обчислювальний кластер знаходиться у розділі «Документація»
Різноманітна інформація про обчислювальний кластер знаходиться у розділі «Документація»
Описание слайда:
Різноманітна інформація про обчислювальний кластер знаходиться у розділі «Документація» Різноманітна інформація про обчислювальний кластер знаходиться у розділі «Документація»

Слайд 6





Найбільш корисним є розділ «Інструкція для користувачів»
Найбільш корисним є розділ «Інструкція для користувачів»
Описание слайда:
Найбільш корисним є розділ «Інструкція для користувачів» Найбільш корисним є розділ «Інструкція для користувачів»

Слайд 7





На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії.
На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії.
Також варто відзначити, що і ця версія сайту не охоплює усі можливості роботи з суперкомп’ютером.
Описание слайда:
На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії. На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії. Також варто відзначити, що і ця версія сайту не охоплює усі можливості роботи з суперкомп’ютером.

Слайд 8





Суперкомп’ютер Інституту кібернетики складається з чотирьох обчислювальних кластерів: СКІТ-1, СКІТ-2, СКІТ-3, СКІТ-4. З них перші два кластери застаріли і уже не використовуються.
Суперкомп’ютер Інституту кібернетики складається з чотирьох обчислювальних кластерів: СКІТ-1, СКІТ-2, СКІТ-3, СКІТ-4. З них перші два кластери застаріли і уже не використовуються.
СКІТ-3 – 127-вузловий кластер на багатоядерних процесорах     (75 вузлів на 2-ядерних процесорах Intel Xeon 5160 та 52 вузла на 4-ядерних процесорах Intel Xeon 5345).
Тактова частота – 3,0 ГГц та 2,2 ГГц відповідно. Число процесорів у вузлі кластера – 2.
Оперативна пам’ять вузла – 2 ГБ на ядро, відповідно, 8 та 16 ГБ.
Число ядер процесорів у вузлі – 4 та 8. Всього у кластері 716 ядер.
СКІТ-3 інтегрований із системою зберігання даних типу RAID5 на основі паралельної файлової системи Lustre обсягом 20 ТБ.
Продуктивність кластера – 7500 ГФлопс (номінальна),                 5317 ГФлопс (підтверджена).
Описание слайда:
Суперкомп’ютер Інституту кібернетики складається з чотирьох обчислювальних кластерів: СКІТ-1, СКІТ-2, СКІТ-3, СКІТ-4. З них перші два кластери застаріли і уже не використовуються. Суперкомп’ютер Інституту кібернетики складається з чотирьох обчислювальних кластерів: СКІТ-1, СКІТ-2, СКІТ-3, СКІТ-4. З них перші два кластери застаріли і уже не використовуються. СКІТ-3 – 127-вузловий кластер на багатоядерних процесорах (75 вузлів на 2-ядерних процесорах Intel Xeon 5160 та 52 вузла на 4-ядерних процесорах Intel Xeon 5345). Тактова частота – 3,0 ГГц та 2,2 ГГц відповідно. Число процесорів у вузлі кластера – 2. Оперативна пам’ять вузла – 2 ГБ на ядро, відповідно, 8 та 16 ГБ. Число ядер процесорів у вузлі – 4 та 8. Всього у кластері 716 ядер. СКІТ-3 інтегрований із системою зберігання даних типу RAID5 на основі паралельної файлової системи Lustre обсягом 20 ТБ. Продуктивність кластера – 7500 ГФлопс (номінальна), 5317 ГФлопс (підтверджена).

Слайд 9





СКІТ-4 – 28-вузловий кластер на 16-ядерних процесорах Intel Xeon E5-2600.
СКІТ-4 – 28-вузловий кластер на 16-ядерних процесорах Intel Xeon E5-2600.
Тактова частота – 2,6 ГГц. Число процесорі у вузлі кластера – 1.
У режимі Hyper-threading відбувається імітація 32-ядерних процесорів.
Оперативна пам’ять вузла – 64 ГБ.
Всього у кластері 448 ядер.
СКІТ-4 інтегрований із високопродуктивним сховищем даних об'ємом 120 ТБ на основі паралельної файлової системи Lustre.
З 28 вузлів 12 додатково мають по 3 графічні прискорювачі nVidia Tesla M2075.
Завдяки наявності графічних процесорів nVidia продуктивність кластера становить 30 ТФлопс (номінальна) та 18 ТФлопс (реальна). В той же час на цьому кластері не рекомендується запускати задачі, які не використовують ресурс графічних прискорювачів.
Описание слайда:
СКІТ-4 – 28-вузловий кластер на 16-ядерних процесорах Intel Xeon E5-2600. СКІТ-4 – 28-вузловий кластер на 16-ядерних процесорах Intel Xeon E5-2600. Тактова частота – 2,6 ГГц. Число процесорі у вузлі кластера – 1. У режимі Hyper-threading відбувається імітація 32-ядерних процесорів. Оперативна пам’ять вузла – 64 ГБ. Всього у кластері 448 ядер. СКІТ-4 інтегрований із високопродуктивним сховищем даних об'ємом 120 ТБ на основі паралельної файлової системи Lustre. З 28 вузлів 12 додатково мають по 3 графічні прискорювачі nVidia Tesla M2075. Завдяки наявності графічних процесорів nVidia продуктивність кластера становить 30 ТФлопс (номінальна) та 18 ТФлопс (реальна). В той же час на цьому кластері не рекомендується запускати задачі, які не використовують ресурс графічних прискорювачів.

Слайд 10





2. Про паралельні технології
Існує декілька способів зайняти обчислювальні потужності кластера:
1. Запускання багатьох однопроцесорних завдань. Це може бути сприятливим варіантом, якщо потрібно провести багато незалежних обчислювальних експериментів з різними вхідними даними, причому час проведення кожного окремого розрахунку не має значення, а всі дані розміщаються в об'ємі пам'яті, доступному одному процесу.
2. Викликати у своїх програмах паралельні бібліотеки. Для деяких областей, наприклад, лінійна алгебра, доступні бібліотеки, які дозволяють вирішувати широке коло стандартних підзадач з використанням можливостей паралельної обробки.
Описание слайда:
2. Про паралельні технології Існує декілька способів зайняти обчислювальні потужності кластера: 1. Запускання багатьох однопроцесорних завдань. Це може бути сприятливим варіантом, якщо потрібно провести багато незалежних обчислювальних експериментів з різними вхідними даними, причому час проведення кожного окремого розрахунку не має значення, а всі дані розміщаються в об'ємі пам'яті, доступному одному процесу. 2. Викликати у своїх програмах паралельні бібліотеки. Для деяких областей, наприклад, лінійна алгебра, доступні бібліотеки, які дозволяють вирішувати широке коло стандартних підзадач з використанням можливостей паралельної обробки.

Слайд 11





Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері.
Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері.
3. Створювати власні паралельні програми. Це найбільш трудомісткий, але й найбільш універсальний спосіб. Існує кілька варіантів такої роботи, зокрема , вставляти паралельні конструкції в готові паралельні програми або створювати з "нуля" паралельну програму.
Надалі розглядатиметься саме останній варіант.
Описание слайда:
Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері. Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері. 3. Створювати власні паралельні програми. Це найбільш трудомісткий, але й найбільш універсальний спосіб. Існує кілька варіантів такої роботи, зокрема , вставляти паралельні конструкції в готові паралельні програми або створювати з "нуля" паралельну програму. Надалі розглядатиметься саме останній варіант.

Слайд 12





На суперкомп’ютері встановлені компілятори мов C,  C++ та Fortran.
На суперкомп’ютері встановлені компілятори мов C,  C++ та Fortran.
Можна встановлювати компілятори й інших мов, але тільки у свій домашній каталог. Варто відзначити також слабку підтримку паралельних технологій, встановлених на суперкомп’ютері, іншими мовами. Також не гарантується стабільність роботи таких компіляторів на обчислювальному кластері.
Для усіх вищезазначених мов встановлені відкриті компілятори GCC та комерційні Intel.
Версії компіляторів GCC: 3.4.6, 4.1.2, 4.4.7
Версії компіляторів Intel: 10.1, 12.1.6, 13.0.1, 13.1.1, 13.1.3
Описание слайда:
На суперкомп’ютері встановлені компілятори мов C, C++ та Fortran. На суперкомп’ютері встановлені компілятори мов C, C++ та Fortran. Можна встановлювати компілятори й інших мов, але тільки у свій домашній каталог. Варто відзначити також слабку підтримку паралельних технологій, встановлених на суперкомп’ютері, іншими мовами. Також не гарантується стабільність роботи таких компіляторів на обчислювальному кластері. Для усіх вищезазначених мов встановлені відкриті компілятори GCC та комерційні Intel. Версії компіляторів GCC: 3.4.6, 4.1.2, 4.4.7 Версії компіляторів Intel: 10.1, 12.1.6, 13.0.1, 13.1.1, 13.1.3

Слайд 13





Суперкомп’ютер підтримує такі паралельні технології:
Суперкомп’ютер підтримує такі паралельні технології:
1. MPI. Програмний інтерфейс для передачі інформації, який дозволяє обмінюватися повідомленнями між процесами, які виконують одну задачу.
2. CUDA. Програмно-апаратна архітектура паралельних обчислень, яка дозволяє суттєво збільшити продуктивність обрахунків завдяки використанню графічних процесорів nVidia.
3. OpenCL. Фреймворк для написання паралельних програм на різноманітних графічних та центральних процесорах.
4. OpenMP. Відкритий стандарт для розпаралелювання програм на системах з загальною пам’яттю.
Надалі буде розглянуто такі класичні технології, як OpenMP та MPI.
Описание слайда:
Суперкомп’ютер підтримує такі паралельні технології: Суперкомп’ютер підтримує такі паралельні технології: 1. MPI. Програмний інтерфейс для передачі інформації, який дозволяє обмінюватися повідомленнями між процесами, які виконують одну задачу. 2. CUDA. Програмно-апаратна архітектура паралельних обчислень, яка дозволяє суттєво збільшити продуктивність обрахунків завдяки використанню графічних процесорів nVidia. 3. OpenCL. Фреймворк для написання паралельних програм на різноманітних графічних та центральних процесорах. 4. OpenMP. Відкритий стандарт для розпаралелювання програм на системах з загальною пам’яттю. Надалі буде розглянуто такі класичні технології, як OpenMP та MPI.

Слайд 14





2.1. OpenMP
OpenMP використовується на системах із загальною пам’яттю, тобто коли різні потоки можуть звертатися до однієї і тієї самої ділянки пам’яті.
За допомогою директив OpenMP можна вказати компілятору, що деякі ділянки коду необхідно виконувати паралельно, декількома потоками   (див. мал.).
Перевагою цієї технології є те, що програму, написану для виконання на одному процесорі, можна легко перетворити на паралельну, дописавши лише декілька рядків коду.
Описание слайда:
2.1. OpenMP OpenMP використовується на системах із загальною пам’яттю, тобто коли різні потоки можуть звертатися до однієї і тієї самої ділянки пам’яті. За допомогою директив OpenMP можна вказати компілятору, що деякі ділянки коду необхідно виконувати паралельно, декількома потоками (див. мал.). Перевагою цієї технології є те, що програму, написану для виконання на одному процесорі, можна легко перетворити на паралельну, дописавши лише декілька рядків коду.

Слайд 15





OpenMP підтримується, зокрема, такими компіляторами:
OpenMP підтримується, зокрема, такими компіляторами:
компілятори GCC, починаючи з версії 4.2;
Visual C++ 2005 та 2008 у редакціях Professional та Team System; 2010 – у редакціях Professional, Premium та Ultimate; починаючи з 2012 – у всіх версіях;
комерційні компілятори Intel, починаючи з версії 10.1 – зараз надаються у складі продукту Intel Parallel Studio.
Щоби скомпілювати програму, написану з допомогою OpenMP, компілятором GCC, необхідно додати ключ /fopenmp; у випадку Visual C++ - /openmp; Intel – /Qopenmp
Для останніх двох компіляторів, у разі використання середовища Microsoft Visual Studio (Intel Parallel Studio інтегровується у склад Microsoft Visual Studio) цю опцію можна ввімкнути у налаштуваннях проекту.
Описание слайда:
OpenMP підтримується, зокрема, такими компіляторами: OpenMP підтримується, зокрема, такими компіляторами: компілятори GCC, починаючи з версії 4.2; Visual C++ 2005 та 2008 у редакціях Professional та Team System; 2010 – у редакціях Professional, Premium та Ultimate; починаючи з 2012 – у всіх версіях; комерційні компілятори Intel, починаючи з версії 10.1 – зараз надаються у складі продукту Intel Parallel Studio. Щоби скомпілювати програму, написану з допомогою OpenMP, компілятором GCC, необхідно додати ключ /fopenmp; у випадку Visual C++ - /openmp; Intel – /Qopenmp Для останніх двох компіляторів, у разі використання середовища Microsoft Visual Studio (Intel Parallel Studio інтегровується у склад Microsoft Visual Studio) цю опцію можна ввімкнути у налаштуваннях проекту.

Слайд 16





Для демонстрації роботи OpenMP наведемо програму обчислення числа π на мові C++ за наступною формулою:
Для демонстрації роботи OpenMP наведемо програму обчислення числа π на мові C++ за наступною формулою:
Описание слайда:
Для демонстрації роботи OpenMP наведемо програму обчислення числа π на мові C++ за наступною формулою: Для демонстрації роботи OpenMP наведемо програму обчислення числа π на мові C++ за наступною формулою:

Слайд 17





У код послідовної програми вставлено лише одну стрічку:
У код послідовної програми вставлено лише одну стрічку:
#pragma omp parallel for private(x) reduction(+:sum) –
і вона стає паралельною.
Деякі пояснення:
Усі директиви OpenMP включаються у C та C++ за допомогою директиви препроцесора #pragma з подальшою інструкцією omp	
Усі змінні, оголошені до директив OpenMP вважаються глобальними для усіх потоків; всередині – локальними для кожного потоку.
Область видимості змінної можна змінити. Наприклад, за допомогою інструкції private змінна x стала локальною для кожного потоку.
Інструкція parallel for вказує на те, що ітерації циклу розділяються між декількома потоками, наприклад, дії для i = 0 .. 249 виконуватимуться першим потоком, i = 250 .. 499 – другим потоком і т. д.
Існують й окремі інструкції parallel та for.
Описание слайда:
У код послідовної програми вставлено лише одну стрічку: У код послідовної програми вставлено лише одну стрічку: #pragma omp parallel for private(x) reduction(+:sum) – і вона стає паралельною. Деякі пояснення: Усі директиви OpenMP включаються у C та C++ за допомогою директиви препроцесора #pragma з подальшою інструкцією omp Усі змінні, оголошені до директив OpenMP вважаються глобальними для усіх потоків; всередині – локальними для кожного потоку. Область видимості змінної можна змінити. Наприклад, за допомогою інструкції private змінна x стала локальною для кожного потоку. Інструкція parallel for вказує на те, що ітерації циклу розділяються між декількома потоками, наприклад, дії для i = 0 .. 249 виконуватимуться першим потоком, i = 250 .. 499 – другим потоком і т. д. Існують й окремі інструкції parallel та for.

Слайд 18





Інструкція parallel вказує на те, що код, записаний у наступному блоці виконуватиметься одночасно усіма потоками.
Інструкція parallel вказує на те, що код, записаний у наступному блоці виконуватиметься одночасно усіма потоками.
Інструкція for працює лише у вкладеному блоці parallel і означає розділення ітерацій циклу між різними потоками.
Оператор редукції reduction робить одразу декілька речей. Так, у цьому прикладі, змінна sum стає локальною для кожного потоку, а після виконання циклу (як і паралельного блоку) усі локальні значення змінної додаються (+), а результат зберігається у тій же змінній.
Кількість потоків можна визначити змінною середовища OMP_NUM_THREADS, яка встановлюється у командному рядку:
set OMP_NUM_THREADS=4,
або викликом функції omp_set_num_threads із заголовного файлу omp.h:
omp_set_num_threads(4);
Описание слайда:
Інструкція parallel вказує на те, що код, записаний у наступному блоці виконуватиметься одночасно усіма потоками. Інструкція parallel вказує на те, що код, записаний у наступному блоці виконуватиметься одночасно усіма потоками. Інструкція for працює лише у вкладеному блоці parallel і означає розділення ітерацій циклу між різними потоками. Оператор редукції reduction робить одразу декілька речей. Так, у цьому прикладі, змінна sum стає локальною для кожного потоку, а після виконання циклу (як і паралельного блоку) усі локальні значення змінної додаються (+), а результат зберігається у тій же змінній. Кількість потоків можна визначити змінною середовища OMP_NUM_THREADS, яка встановлюється у командному рядку: set OMP_NUM_THREADS=4, або викликом функції omp_set_num_threads із заголовного файлу omp.h: omp_set_num_threads(4);

Слайд 19





2.2. MPI
Message Passing Interface (MPI) використовується на системах з роздільною пам’яттю, коли кожному процесору виділено свою область пам’яті.
На відміну від OpenMP, MPI передбачає існування декількох потоків з самого початку роботи програми. Протягом роботи програми потоки можуть комунікувати між собою за допомогою механізму «повідомлень» (див. мал.).
Така особливість роботи MPI не дозволяє переробити послідовну програму у паралельну, натомість доводиться повністю змінювати логіку програми.
Описание слайда:
2.2. MPI Message Passing Interface (MPI) використовується на системах з роздільною пам’яттю, коли кожному процесору виділено свою область пам’яті. На відміну від OpenMP, MPI передбачає існування декількох потоків з самого початку роботи програми. Протягом роботи програми потоки можуть комунікувати між собою за допомогою механізму «повідомлень» (див. мал.). Така особливість роботи MPI не дозволяє переробити послідовну програму у паралельну, натомість доводиться повністю змінювати логіку програми.

Слайд 20





MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI.
MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI.
Сам по собі MPI не є готовим програмним продуктом, а є лише набором правил, за якими мають працювати реалізації цієї технології. Серед її реалізацій виділяють відкриті MPICH та OpenMPI, безкоштовну Microsoft MPI та комерційну Intel MPI.
Компіляція та запуск програм, написаних з допомогою MPI, зазвичай супроводжується великими труднощами: необхідно підключати додаткові заголовні файли та файли бібліотек, а запуск програми виконується через додатковий файл, наприклад з іменем mpiexec.exe, де скомпільована програма передається одним із параметрів. Про ці налаштування найкраще прочитати в офіційних документаціях відповідних реалізацій.
Описание слайда:
MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI. MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI. Сам по собі MPI не є готовим програмним продуктом, а є лише набором правил, за якими мають працювати реалізації цієї технології. Серед її реалізацій виділяють відкриті MPICH та OpenMPI, безкоштовну Microsoft MPI та комерційну Intel MPI. Компіляція та запуск програм, написаних з допомогою MPI, зазвичай супроводжується великими труднощами: необхідно підключати додаткові заголовні файли та файли бібліотек, а запуск програми виконується через додатковий файл, наприклад з іменем mpiexec.exe, де скомпільована програма передається одним із параметрів. Про ці налаштування найкраще прочитати в офіційних документаціях відповідних реалізацій.

Слайд 21





Для порівняння технологій знову наводиться програма обчислення числа π, але вже з використанням MPI.
Для порівняння технологій знову наводиться програма обчислення числа π, але вже з використанням MPI.
Описание слайда:
Для порівняння технологій знову наводиться програма обчислення числа π, але вже з використанням MPI. Для порівняння технологій знову наводиться програма обчислення числа π, але вже з використанням MPI.

Слайд 22





Деякі пояснення:
Деякі пояснення:
Абсолютно усі команди MPI мають знаходитися між функціями MPI_Init, у яку передаються параметри командного рядка, та MPI_Finalize. Знову відкрити секцію MPI після MPI_Finalize неможливо.
Описание слайда:
Деякі пояснення: Деякі пояснення: Абсолютно усі команди MPI мають знаходитися між функціями MPI_Init, у яку передаються параметри командного рядка, та MPI_Finalize. Знову відкрити секцію MPI після MPI_Finalize неможливо.

Слайд 23





Після виконання функції MPI_Init створюється група потоків, кожний з яких виконуватиме один і той самий код, написаний після цієї функції.
Після виконання функції MPI_Init створюється група потоків, кожний з яких виконуватиме один і той самий код, написаний після цієї функції.
Майже в усіх функціях MPI присутній параметр зі значенням MPI_COMM_WORLD. Це спеціальний об’єкт MPI, який називається комунікатором.  Комунікатори об’єднують у собі певні групи потоків. Комунікатори дозволяють контролювати, щоби повідомлення передавалися лише між процесами з одного комунікатора. Після виклику функції MPI_Init автоматично створюється комунікатор MPI_COMM_WORLD, який об’єднує у собі усі доступні потоки.
Функція MPI_Comm_size дозволяє визначити кількість потоків у комунікаторі, а MPI_Comm_rank – порядковий номер потоку. Нумерація починається з 0.
Функція MPI_Bcast є функцією широкомовного обміну. Після її проведення у всіх потоках з деякого комунікатора (останній параметр) буде однакове значення деякої змінної (1-ий параметр). Значення береться з потоку, номер якого задається 4-им параметром. Другий та третій параметри визначають кількість і тип даних (у формі MPI_INT, MPI_DOUBLE тощо), що передаються.
Описание слайда:
Після виконання функції MPI_Init створюється група потоків, кожний з яких виконуватиме один і той самий код, написаний після цієї функції. Після виконання функції MPI_Init створюється група потоків, кожний з яких виконуватиме один і той самий код, написаний після цієї функції. Майже в усіх функціях MPI присутній параметр зі значенням MPI_COMM_WORLD. Це спеціальний об’єкт MPI, який називається комунікатором. Комунікатори об’єднують у собі певні групи потоків. Комунікатори дозволяють контролювати, щоби повідомлення передавалися лише між процесами з одного комунікатора. Після виклику функції MPI_Init автоматично створюється комунікатор MPI_COMM_WORLD, який об’єднує у собі усі доступні потоки. Функція MPI_Comm_size дозволяє визначити кількість потоків у комунікаторі, а MPI_Comm_rank – порядковий номер потоку. Нумерація починається з 0. Функція MPI_Bcast є функцією широкомовного обміну. Після її проведення у всіх потоках з деякого комунікатора (останній параметр) буде однакове значення деякої змінної (1-ий параметр). Значення береться з потоку, номер якого задається 4-им параметром. Другий та третій параметри визначають кількість і тип даних (у формі MPI_INT, MPI_DOUBLE тощо), що передаються.

Слайд 24





На відміну від OpenMP, де компілятор сам забезпечував розподіл ітерацій циклу між потоками, у MPI контроль за цим покладається на користувача. Розповсюдженою є така схема: початковим значенням змінної циклу є номер потоку, зміна йде не на 1, а на кількість потоків у програмі. Таким чином, у випадку чотирьох потоків потоку з порядковим номером 0 відповідатимуть значення 0, 4, 8, …;                      1: 1, 5, 9, …;           2: 2, 6, 10, …;          3: 3, 7, 11, …          Як бачимо, така схема забезпечує відсутність повторень індексу циклу між потоками.
На відміну від OpenMP, де компілятор сам забезпечував розподіл ітерацій циклу між потоками, у MPI контроль за цим покладається на користувача. Розповсюдженою є така схема: початковим значенням змінної циклу є номер потоку, зміна йде не на 1, а на кількість потоків у програмі. Таким чином, у випадку чотирьох потоків потоку з порядковим номером 0 відповідатимуть значення 0, 4, 8, …;                      1: 1, 5, 9, …;           2: 2, 6, 10, …;          3: 3, 7, 11, …          Як бачимо, така схема забезпечує відсутність повторень індексу циклу між потоками.
Так само, як і в OpenMP, у MPI визначено операцію редукції. За це відповідає функція MPI_Reduce. В якості параметрів передаються змінна, значення якої збиратимуться з потоків; змінна, куди запишеться результат, кількість і тип даних; операція збору даних (MPI_SUM – сума, MPI_PROD – добуток тощо); номер потоку, куди запишеться результат, та комунікатор.
Описание слайда:
На відміну від OpenMP, де компілятор сам забезпечував розподіл ітерацій циклу між потоками, у MPI контроль за цим покладається на користувача. Розповсюдженою є така схема: початковим значенням змінної циклу є номер потоку, зміна йде не на 1, а на кількість потоків у програмі. Таким чином, у випадку чотирьох потоків потоку з порядковим номером 0 відповідатимуть значення 0, 4, 8, …; 1: 1, 5, 9, …; 2: 2, 6, 10, …; 3: 3, 7, 11, … Як бачимо, така схема забезпечує відсутність повторень індексу циклу між потоками. На відміну від OpenMP, де компілятор сам забезпечував розподіл ітерацій циклу між потоками, у MPI контроль за цим покладається на користувача. Розповсюдженою є така схема: початковим значенням змінної циклу є номер потоку, зміна йде не на 1, а на кількість потоків у програмі. Таким чином, у випадку чотирьох потоків потоку з порядковим номером 0 відповідатимуть значення 0, 4, 8, …; 1: 1, 5, 9, …; 2: 2, 6, 10, …; 3: 3, 7, 11, … Як бачимо, така схема забезпечує відсутність повторень індексу циклу між потоками. Так само, як і в OpenMP, у MPI визначено операцію редукції. За це відповідає функція MPI_Reduce. В якості параметрів передаються змінна, значення якої збиратимуться з потоків; змінна, куди запишеться результат, кількість і тип даних; операція збору даних (MPI_SUM – сума, MPI_PROD – добуток тощо); номер потоку, куди запишеться результат, та комунікатор.

Слайд 25





У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо.
У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо.
Запуск скомпільованої програми, написаної за допомоги MPI, може запускатися таким чином:
<шлях до папки з mpiexec>\mpiexec.exe –np <кількість потоків> <шлях до скомпільованої програми>
Більше про MPI можна дізнатися, наприклад, у наступній книзі:
Г.И. Шпаковский, Н.В. Серикова «Программирование для многопроцессорных систем в стандарте MPI»
Описание слайда:
У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо. У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо. Запуск скомпільованої програми, написаної за допомоги MPI, може запускатися таким чином: <шлях до папки з mpiexec>\mpiexec.exe –np <кількість потоків> <шлях до скомпільованої програми> Більше про MPI можна дізнатися, наприклад, у наступній книзі: Г.И. Шпаковский, Н.В. Серикова «Программирование для многопроцессорных систем в стандарте MPI»

Слайд 26





3. Робота з суперкомп’ютером
Для роботи із суперкомп’ютером доступні 2 інтерфейси: графічний через веб-браузер та консольний.
Щоби зайти на суперкомп’ютер із веб-браузера, необхідно зайти за посиланням «Вхід» на сайті суперкомп’ютера http://icybcluster.org.ua/
Описание слайда:
3. Робота з суперкомп’ютером Для роботи із суперкомп’ютером доступні 2 інтерфейси: графічний через веб-браузер та консольний. Щоби зайти на суперкомп’ютер із веб-браузера, необхідно зайти за посиланням «Вхід» на сайті суперкомп’ютера http://icybcluster.org.ua/

Слайд 27





Необхідно буде ввести облікові дані:
Необхідно буде ввести облікові дані:
Описание слайда:
Необхідно буде ввести облікові дані: Необхідно буде ввести облікові дані:

Слайд 28





Відкриється наступна сторінка:
Відкриється наступна сторінка:
Описание слайда:
Відкриється наступна сторінка: Відкриється наступна сторінка:

Слайд 29





Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера.
Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера.
На відкритій закладці «Запуск задач» розташовано деяку подібність «Провідника», форму запуску задач та журнал запусків.
Відкривати папки і файли можна натисканням на відповідну піктограму у другому стовпчику.
На жаль, графічний інтерфейс суперкомп’ютера недосконалий. Досить часто легше працювати з суперкомп’ютером у консольному режимі.
Встановлення із суперкомп’ютером здійснюється через протокол SSH.
У Linux досить виконати команду
ssh pmchnu@icybcluster.org.ua
та ввести пароль для з’єднання із суперкомп’ютером.
Описание слайда:
Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера. Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера. На відкритій закладці «Запуск задач» розташовано деяку подібність «Провідника», форму запуску задач та журнал запусків. Відкривати папки і файли можна натисканням на відповідну піктограму у другому стовпчику. На жаль, графічний інтерфейс суперкомп’ютера недосконалий. Досить часто легше працювати з суперкомп’ютером у консольному режимі. Встановлення із суперкомп’ютером здійснюється через протокол SSH. У Linux досить виконати команду ssh pmchnu@icybcluster.org.ua та ввести пароль для з’єднання із суперкомп’ютером.

Слайд 30





У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
Описание слайда:
У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

Слайд 31





У полі Host Name необхідно ввести адресу icybcluster.org.ua та натиснути кнопку Open, після чого відкриється наступне вікно:
У полі Host Name необхідно ввести адресу icybcluster.org.ua та натиснути кнопку Open, після чого відкриється наступне вікно:
Описание слайда:
У полі Host Name необхідно ввести адресу icybcluster.org.ua та натиснути кнопку Open, після чого відкриється наступне вікно: У полі Host Name необхідно ввести адресу icybcluster.org.ua та натиснути кнопку Open, після чого відкриється наступне вікно:

Слайд 32





Необхідно ввести логін та пароль, після чого можна буде працювати із суперкомп’ютером:
Необхідно ввести логін та пароль, після чого можна буде працювати із суперкомп’ютером:
Описание слайда:
Необхідно ввести логін та пароль, після чого можна буде працювати із суперкомп’ютером: Необхідно ввести логін та пароль, після чого можна буде працювати із суперкомп’ютером:

Слайд 33





На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки:
На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки:
Описание слайда:
На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки: На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки:

Слайд 34





Папка /home/users/pmchnu є домашньою, тобто зайшовши під іменем pmchnu, користувач отримує повний доступ над файлами у цій папці (читання і запис), над іншими папками можна здійснювати лише операцію читання.
Папка /home/users/pmchnu є домашньою, тобто зайшовши під іменем pmchnu, користувач отримує повний доступ над файлами у цій папці (читання і запис), над іншими папками можна здійснювати лише операцію читання.
До домашньої папки можна звертатися через символ ~, як і будь-якому Linux.
Основним програмним компонентом суперкомп’ютера є менеджер ресурсів SLURM. Саме за допомогою нього контролюється набір задач, запущених на комп’ютері, та надається необхідна для задачі кількість процесорів.
Задачі виконуються на суперкомп’ютері за принципом черги, причому на СКІТ-3 та СКІТ-4 організовано по 2 черги: lite_task та scit3 на СКІТ-3; scit4_lt та scit4 на СКІТ-4. Черги scit3 та scit4 призначені для виконання довготермінових задач. Ліміт часу виконання на них складає 21 день. Черги lite_task та scit4_lt призначені для легких завдань. Ліміт часу складає 1 годину.
Описание слайда:
Папка /home/users/pmchnu є домашньою, тобто зайшовши під іменем pmchnu, користувач отримує повний доступ над файлами у цій папці (читання і запис), над іншими папками можна здійснювати лише операцію читання. Папка /home/users/pmchnu є домашньою, тобто зайшовши під іменем pmchnu, користувач отримує повний доступ над файлами у цій папці (читання і запис), над іншими папками можна здійснювати лише операцію читання. До домашньої папки можна звертатися через символ ~, як і будь-якому Linux. Основним програмним компонентом суперкомп’ютера є менеджер ресурсів SLURM. Саме за допомогою нього контролюється набір задач, запущених на комп’ютері, та надається необхідна для задачі кількість процесорів. Задачі виконуються на суперкомп’ютері за принципом черги, причому на СКІТ-3 та СКІТ-4 організовано по 2 черги: lite_task та scit3 на СКІТ-3; scit4_lt та scit4 на СКІТ-4. Черги scit3 та scit4 призначені для виконання довготермінових задач. Ліміт часу виконання на них складає 21 день. Черги lite_task та scit4_lt призначені для легких завдань. Ліміт часу складає 1 годину.

Слайд 35





Щоби подивитися на завантаженість черг у графічному режимі, треба зайти на закладку «Ресурси»:
Щоби подивитися на завантаженість черг у графічному режимі, треба зайти на закладку «Ресурси»:
Описание слайда:
Щоби подивитися на завантаженість черг у графічному режимі, треба зайти на закладку «Ресурси»: Щоби подивитися на завантаженість черг у графічному режимі, треба зайти на закладку «Ресурси»:

Слайд 36





У консольному режимі треба виконати команду sinfo:
У консольному режимі треба виконати команду sinfo:
Описание слайда:
У консольному режимі треба виконати команду sinfo: У консольному режимі треба виконати команду sinfo:

Слайд 37





Щоби подивитися на список задач, які чекають своєї черги, треба зайти на закладку «Задачі»:
Щоби подивитися на список задач, які чекають своєї черги, треба зайти на закладку «Задачі»:
Описание слайда:
Щоби подивитися на список задач, які чекають своєї черги, треба зайти на закладку «Задачі»: Щоби подивитися на список задач, які чекають своєї черги, треба зайти на закладку «Задачі»:

Слайд 38





У консольному режимі цьому відповідає команда squeue:
У консольному режимі цьому відповідає команда squeue:
Описание слайда:
У консольному режимі цьому відповідає команда squeue: У консольному режимі цьому відповідає команда squeue:

Слайд 39





3.1. Обмін файлами
Щоби завантажити деякий файл із сервера у графічному режимі, потрібно виділити необхідні файли і натиснути на кнопку «Скачати файл»:
У Linux за копіювання файлів відповідає утиліта scp. Так, щоби завантажити той самий файл засобами Linux, треба виконати команду:
scp pmchnu@icybcluster.org.ua:/home/users/pmchnu/SLAR3DIAG/SLAR3DIAG.f90 SLAR3DIAG.f90
Описание слайда:
3.1. Обмін файлами Щоби завантажити деякий файл із сервера у графічному режимі, потрібно виділити необхідні файли і натиснути на кнопку «Скачати файл»: У Linux за копіювання файлів відповідає утиліта scp. Так, щоби завантажити той самий файл засобами Linux, треба виконати команду: scp pmchnu@icybcluster.org.ua:/home/users/pmchnu/SLAR3DIAG/SLAR3DIAG.f90 SLAR3DIAG.f90

Слайд 40





У Windows необхідно встановити додатковий SCP-клієнт, наприклад, WinSCP:
У Windows необхідно встановити додатковий SCP-клієнт, наприклад, WinSCP:
Описание слайда:
У Windows необхідно встановити додатковий SCP-клієнт, наприклад, WinSCP: У Windows необхідно встановити додатковий SCP-клієнт, наприклад, WinSCP:

Слайд 41





Відкриється наступне вікно:
Відкриється наступне вікно:
Описание слайда:
Відкриється наступне вікно: Відкриється наступне вікно:

Слайд 42





WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами.
WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами.
Якщо ж користуватися веб-браузером, то необхідно натиснути на кнопку «Закачування», та вибрати відповідні файли:
Описание слайда:
WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами. WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами. Якщо ж користуватися веб-браузером, то необхідно натиснути на кнопку «Закачування», та вибрати відповідні файли:

Слайд 43





3.2. Запуск MPI-програм
Щоби запускати свої завдання на суперкомп’ютері, необхідно зробити 3 речі:
Завантажити на сервер програмний код на мові C, C++ чи Fortran.
Провести компіляцію файлу у бінарний файл.
Запустити бінарний файл на виконання.
Розпочнемо з запуску MPI-програм, як найбільш природного засобу для розпаралелювання на суперкомп’ютері Інституту кібернетики.
На суперкомп’ютері встановлені 2 реалізації MPI: OpenMPI та MVAPICH2. OpenMPI вважається стандартною, а MVAPICH2 призначений для інтеграції з технологією CUDA, хоча її можна використовувати й замість OpenMPI.
Описание слайда:
3.2. Запуск MPI-програм Щоби запускати свої завдання на суперкомп’ютері, необхідно зробити 3 речі: Завантажити на сервер програмний код на мові C, C++ чи Fortran. Провести компіляцію файлу у бінарний файл. Запустити бінарний файл на виконання. Розпочнемо з запуску MPI-програм, як найбільш природного засобу для розпаралелювання на суперкомп’ютері Інституту кібернетики. На суперкомп’ютері встановлені 2 реалізації MPI: OpenMPI та MVAPICH2. OpenMPI вважається стандартною, а MVAPICH2 призначений для інтеграції з технологією CUDA, хоча її можна використовувати й замість OpenMPI.

Слайд 44





Спочатку розглянемо запуск програм у консольному режимі.
Спочатку розглянемо запуск програм у консольному режимі.
На жаль, на керуючому вузлі, який одразу доступний для користувача, не встановлено жодних компіляторів. Компілятори встановлені безпосередньо на вузлах, на яких виконуються завдання. Тому необхідно з’єднатися із цими вузлами.
Спочатку необхідно здійснити запит на ресурси до якої-небудь черги. Найоптимальнішим варіантом є черга lite_task, у якої малий ліміт часу і яка найшвидше надасть ресурси. Запит здійснюється наступною командою:
salloc -p lite_task bash
Після виконання команди необхідно здійснити команду squeue, щоби дізнатися номер вузла, на якому були виділені ресурси.
Описание слайда:
Спочатку розглянемо запуск програм у консольному режимі. Спочатку розглянемо запуск програм у консольному режимі. На жаль, на керуючому вузлі, який одразу доступний для користувача, не встановлено жодних компіляторів. Компілятори встановлені безпосередньо на вузлах, на яких виконуються завдання. Тому необхідно з’єднатися із цими вузлами. Спочатку необхідно здійснити запит на ресурси до якої-небудь черги. Найоптимальнішим варіантом є черга lite_task, у якої малий ліміт часу і яка найшвидше надасть ресурси. Запит здійснюється наступною командою: salloc -p lite_task bash Після виконання команди необхідно здійснити команду squeue, щоби дізнатися номер вузла, на якому були виділені ресурси.

Слайд 45






По виділенні ресурсів необхідно з’єднатися із цим вузлом за допомогою команди ssh. У наведеному вище випадку необхідно виконати команду:
ssh n3001
Описание слайда:
По виділенні ресурсів необхідно з’єднатися із цим вузлом за допомогою команди ssh. У наведеному вище випадку необхідно виконати команду: ssh n3001

Слайд 46





Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються:
Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються:
mpicc для мови C
mpicxx для мови C++
mpif77 для мови FORTRAN 77
mpif90 для мови Fortran 90
Для уникнення конфліктів між різними версіями, шляхи до папки зі скриптами формуються наступним чином:
/opt/<назва реалізації MPI>/<версія MPI>/<назва компілятора>/
<версія компілятора>/bin
Описание слайда:
Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються: Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються: mpicc для мови C mpicxx для мови C++ mpif77 для мови FORTRAN 77 mpif90 для мови Fortran 90 Для уникнення конфліктів між різними версіями, шляхи до папки зі скриптами формуються наступним чином: /opt/<назва реалізації MPI>/<версія MPI>/<назва компілятора>/ <версія компілятора>/bin

Слайд 47





Скрипти для бібліотеки OpenMPI треба шукати у папці /opt/ompi
Скрипти для бібліотеки OpenMPI треба шукати у папці /opt/ompi
Скрипти для бібліотеки MVAPICH2 треба шукати у папці /opt/mvapich2
Замість <назва компілятора> необхідно писати gcc або intel – залежно, який саме компілятор буде використовуватися.
Наводимо шляхи з останніми версіями бібліотек та компіляторів на момент оформлення презентації:
OpenMPI, GCC: /opt/ompi/1.6.5/gcc/4.4/bin
OpenMPI, Intel: /opt/ompi/1.6.5/intel/2013.5.192/bin
MVAPICH2, GCC: /opt/mvapich2/1.9a/gcc/4.4/bin
MVAPICH2, Intel: /opt/mvapich2/1.9a/intel/current/bin
Компіляція відбувається наступним чином:
<шлях до скрипта> <файл з програмним кодом> -o <бінарний файл>
Описание слайда:
Скрипти для бібліотеки OpenMPI треба шукати у папці /opt/ompi Скрипти для бібліотеки OpenMPI треба шукати у папці /opt/ompi Скрипти для бібліотеки MVAPICH2 треба шукати у папці /opt/mvapich2 Замість <назва компілятора> необхідно писати gcc або intel – залежно, який саме компілятор буде використовуватися. Наводимо шляхи з останніми версіями бібліотек та компіляторів на момент оформлення презентації: OpenMPI, GCC: /opt/ompi/1.6.5/gcc/4.4/bin OpenMPI, Intel: /opt/ompi/1.6.5/intel/2013.5.192/bin MVAPICH2, GCC: /opt/mvapich2/1.9a/gcc/4.4/bin MVAPICH2, Intel: /opt/mvapich2/1.9a/intel/current/bin Компіляція відбувається наступним чином: <шлях до скрипта> <файл з програмним кодом> -o <бінарний файл>

Слайд 48






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

Слайд 49





Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом:
Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом:
srun -p <черга> -n <кількість ядер> <шлях до скомпільованої програми>
Ця команда запускає програму у діалоговому режимі. Водночас, якщо необхідних ресурсів на суперкомп’ютері немає, то очікування виконання може зайняти досить довго часу.
Для того щоб зупинити виконання програми, необхідно натиснути комбінацію клавіш Ctrl + C.
Також необхідно зазначити, що при використанні OpenMPI команда srun поводитиме себе некоректно.
Описание слайда:
Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом: Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом: srun -p <черга> -n <кількість ядер> <шлях до скомпільованої програми> Ця команда запускає програму у діалоговому режимі. Водночас, якщо необхідних ресурсів на суперкомп’ютері немає, то очікування виконання може зайняти досить довго часу. Для того щоб зупинити виконання програми, необхідно натиснути комбінацію клавіш Ctrl + C. Також необхідно зазначити, що при використанні OpenMPI команда srun поводитиме себе некоректно.

Слайд 50





Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel.
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel.
Описание слайда:
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel. Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel.

Слайд 51





Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди:
Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди:
sbatch -p <черга> -n <кількість ядер> <скрипт запуску>
Так як задача виконується у фоновому режимі, то програма не має очікувати якихось додаткових дій від користувача, наприклад, введення значення змінних.
На відміну від srun, sbatch потребує в якості одного з параметрів не бінарний файл програми, а bash-скрипт, всередині якого має бути звернення, наприклад, до команди srun.
Адміністраторами суперкомп’ютера уже розроблені додаткові скрипти для запуску програм. Щоби запустити OpenMPI-програму необхідно запустити скрипт run.ompi, в якості параметрів якого передається бінарний файл програми з її параметрами. Для MVAPICH2 розроблено скрипт run.mvapich2, який, щоправда, нічого не виконує, окрім прямого запуску програми на суперкомп’ютері.
Описание слайда:
Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди: Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди: sbatch -p <черга> -n <кількість ядер> <скрипт запуску> Так як задача виконується у фоновому режимі, то програма не має очікувати якихось додаткових дій від користувача, наприклад, введення значення змінних. На відміну від srun, sbatch потребує в якості одного з параметрів не бінарний файл програми, а bash-скрипт, всередині якого має бути звернення, наприклад, до команди srun. Адміністраторами суперкомп’ютера уже розроблені додаткові скрипти для запуску програм. Щоби запустити OpenMPI-програму необхідно запустити скрипт run.ompi, в якості параметрів якого передається бінарний файл програми з її параметрами. Для MVAPICH2 розроблено скрипт run.mvapich2, який, щоправда, нічого не виконує, окрім прямого запуску програми на суперкомп’ютері.

Слайд 52





Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel.
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel.
Описание слайда:
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel. Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel.

Слайд 53





За станом виконання задачі можна стежити, виконавши команду squeue:
За станом виконання задачі можна стежити, виконавши команду squeue:
Якщо треба відмінити завдання, то виконується команда scancel, наприклад:
scancel 114734
Описание слайда:
За станом виконання задачі можна стежити, виконавши команду squeue: За станом виконання задачі можна стежити, виконавши команду squeue: Якщо треба відмінити завдання, то виконується команда scancel, наприклад: scancel 114734

Слайд 54





Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку:
Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку:
Після того, як задача виконається (а сама вона зникне зі списку запущених задач), у папці звідки була запущена команда sbatch, з’явиться файл з назвою slurm-<номер задачі>.out, у якому буде записано все, що мало записуватися у стандартний потік виводу.
Описание слайда:
Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку: Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку: Після того, як задача виконається (а сама вона зникне зі списку запущених задач), у папці звідки була запущена команда sbatch, з’явиться файл з назвою slurm-<номер задачі>.out, у якому буде записано все, що мало записуватися у стандартний потік виводу.

Слайд 55





Дослідити вміст цього файлу можна за допомогою команди cat:
Дослідити вміст цього файлу можна за допомогою команди cat:
Описание слайда:
Дослідити вміст цього файлу можна за допомогою команди cat: Дослідити вміст цього файлу можна за допомогою команди cat:

Слайд 56





З сайту також можна подивитись на вміст цього файлу, попередньо натиснувши кнопку «Оновити»
З сайту також можна подивитись на вміст цього файлу, попередньо натиснувши кнопку «Оновити»
Описание слайда:
З сайту також можна подивитись на вміст цього файлу, попередньо натиснувши кнопку «Оновити» З сайту також можна подивитись на вміст цього файлу, попередньо натиснувши кнопку «Оновити»

Слайд 57





Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми.
Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми.
Компіляція файлів формою передбачено, але потребує наявності файлу Makefile для Linux-івської утиліти make та виконується одночасно з запуском задачі, що далеко не завжди є прийнятним через неузгодженість між параметрами SLURM для цих двох задач.
Описание слайда:
Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми. Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми. Компіляція файлів формою передбачено, але потребує наявності файлу Makefile для Linux-івської утиліти make та виконується одночасно з запуском задачі, що далеко не завжди є прийнятним через неузгодженість між параметрами SLURM для цих двох задач.

Слайд 58





Запуск з форми відбувається таким чином:
Запуск з форми відбувається таким чином:
При цьому у каталозі, звідки було запущено задачу, створюється папка <ім’я задачі>.out, де буде розташовано 2 файли: файл з розширенням .err для відображення помилок і .out з вмістом стандартного потоку виводу.
Описание слайда:
Запуск з форми відбувається таким чином: Запуск з форми відбувається таким чином: При цьому у каталозі, звідки було запущено задачу, створюється папка <ім’я задачі>.out, де буде розташовано 2 файли: файл з розширенням .err для відображення помилок і .out з вмістом стандартного потоку виводу.

Слайд 59





3.3. Запуск OpenMP-програм
Щоби скомпілювати OpenMP-програму, як і у випадку з MPI, необхідно з’єднатися з додатковим вузлом.
Компіляція здійснюється наступним чином:
<шлях до компілятора> -fopenmp <файл з програмним кодом> -o <бінарний файл>
для компіляторів GCC з заміною fopenmp на openmp у компіляторах Intel.
Компілятори GCC можна викликати без вказання їхнього повного шляху, їхні найновіші версії мають такі назви:
gcc44 для мови C
g++44 для мови C++
g77 для мови FORTRAN 77
gfortran44 для мови Fortran 90
Описание слайда:
3.3. Запуск OpenMP-програм Щоби скомпілювати OpenMP-програму, як і у випадку з MPI, необхідно з’єднатися з додатковим вузлом. Компіляція здійснюється наступним чином: <шлях до компілятора> -fopenmp <файл з програмним кодом> -o <бінарний файл> для компіляторів GCC з заміною fopenmp на openmp у компіляторах Intel. Компілятори GCC можна викликати без вказання їхнього повного шляху, їхні найновіші версії мають такі назви: gcc44 для мови C g++44 для мови C++ g77 для мови FORTRAN 77 gfortran44 для мови Fortran 90

Слайд 60





Найновіші компілятори Intel зберігаються у папці /opt/intel/composerxe/bin і мають такі назви:
Найновіші компілятори Intel зберігаються у папці /opt/intel/composerxe/bin і мають такі назви:
icc для мов C++ та С
ifort для мови Fortran
Приклад компіляції:
Описание слайда:
Найновіші компілятори Intel зберігаються у папці /opt/intel/composerxe/bin і мають такі назви: Найновіші компілятори Intel зберігаються у папці /opt/intel/composerxe/bin і мають такі назви: icc для мов C++ та С ifort для мови Fortran Приклад компіляції:

Слайд 61





Виконання за допомогою команди srun виконується в 2 етапи:
Виконання за допомогою команди srun виконується в 2 етапи:
Спочатку встановлюється значення змінної середовища:
export OMP_NUM_THREADS=<кількість ядер>
Потім виконується команда наступного вигляду:
srun -p <черга> -n 1 -с <кількість ядер> <шлях до скомпільованої програми>
Описание слайда:
Виконання за допомогою команди srun виконується в 2 етапи: Виконання за допомогою команди srun виконується в 2 етапи: Спочатку встановлюється значення змінної середовища: export OMP_NUM_THREADS=<кількість ядер> Потім виконується команда наступного вигляду: srun -p <черга> -n 1 -с <кількість ядер> <шлях до скомпільованої програми>

Слайд 62





Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти:
Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти:
Описание слайда:
Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти: Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти:

Слайд 63






Параметри c і n визначені у скрипті, тому залишилося вказати лише чергу завдань.
Описание слайда:
Параметри c і n визначені у скрипті, тому залишилося вказати лише чергу завдань.

Слайд 64





Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином:
Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином:
sbatch -p <черга> ~/OpenMP.sh <шлях до скомпільованої програми> <кількість ядер>
Описание слайда:
Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином: Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином: sbatch -p <черга> ~/OpenMP.sh <шлях до скомпільованої програми> <кількість ядер>

Слайд 65





Відповідним чином заповнюється і форма запуску:
Відповідним чином заповнюється і форма запуску:
Описание слайда:
Відповідним чином заповнюється і форма запуску: Відповідним чином заповнюється і форма запуску:

Слайд 66





4. Деякі результати тестування
Тестування проводились на комп’ютері з 4-ядерним процесором Intel Core i3-2310M та на суперкомп’ютері Інституту кібернетики.
Програми були написані на мові Fortran.
На звичайному комп’ютері використовувався компілятор Intel з продукту Intel Parallel Studio XE 2015 Cluster Edition та, відповідно, бібліотека Intel MPI 5.
На суперкомп’ютері теж використовувався компілятор Intel з бібліотекою OpenMPI.
Замірявся лише «корисний» час – сам час виконання алгоритму.
Час замірявся у секундах.
Тестування проводилися на випадково згенерованих даних.
Описание слайда:
4. Деякі результати тестування Тестування проводились на комп’ютері з 4-ядерним процесором Intel Core i3-2310M та на суперкомп’ютері Інституту кібернетики. Програми були написані на мові Fortran. На звичайному комп’ютері використовувався компілятор Intel з продукту Intel Parallel Studio XE 2015 Cluster Edition та, відповідно, бібліотека Intel MPI 5. На суперкомп’ютері теж використовувався компілятор Intel з бібліотекою OpenMPI. Замірявся лише «корисний» час – сам час виконання алгоритму. Час замірявся у секундах. Тестування проводилися на випадково згенерованих даних.

Слайд 67





Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу.
Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу.
Описание слайда:
Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу.

Слайд 68





Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP.
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP.
Як видно, цей алгоритм не дав виграшу при запуску на суперкомп’ютері.
Описание слайда:
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP. Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP. Як видно, цей алгоритм не дав виграшу при запуску на суперкомп’ютері.

Слайд 69





Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI.
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI.
Описание слайда:
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI. Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI.

Слайд 70





Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI.
Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI.
Описание слайда:
Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI. Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI.

Слайд 71






Дякую за увагу!
Описание слайда:
Дякую за увагу!



Похожие презентации
Mypresentation.ru
Загрузить презентацию