Презентация Робота з суперкомпютером Інституту кібернетики Нан України онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Робота з суперкомпютером Інституту кібернетики Нан України абсолютно бесплатно. Урок-презентация на эту тему содержит всего 71 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Технология » Робота з суперкомпютером Інституту кібернетики Нан України
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:71 слайд
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:3.80 MB
- Просмотров:72
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![. Загальн в домост Суперкомп](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img1.jpg)
Содержание слайда: 1. Загальні відомості
Суперкомп’ютер – спеціалізована обчислювальна машина, яка значно переважає за своїми параметрами та швидкістю обрахунків більшість існуючих комп’ютерів.
Як правило, сучасні суперкомп’ютери насправді є великим числом потужних серверних комп’ютерів – «вузлів», з’єднаних між собою високошвидкісною магістраллю для отримання максимальної продуктивності. Такі суперкомп’ютери називають ще обчислювальними кластерами.
Найпоширенішим є використання однорідних кластерів, тобто таких, де всі вузли абсолютно однакові за своєю архітектурою й продуктивністю.
№3 слайд
![Основним завданням суперкомп](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img2.jpg)
Содержание слайда: Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах).
Основним завданням суперкомп’ютера є запуск на ньому паралельних програм, тобто програм, призначених для запуску одразу на декількох процесорах (ядрах).
Це може стати корисним у разі проведення великої кількості обчислень. Розділивши набір операцій між декількома процесорами, можна добитися більшої продуктивності, програма працюватиме менше часу.
У такому разі кажуть, що процес, породжений такою програмою, складається з декількох потоків, які виконуються паралельно, тобто без наперед визначеного порядку за часом.
Утворення декількох потоків часто призводить до додаткової задачі координації роботи між потоками, однак кінцевий результат виправдовує ці додаткові витрати.
№7 слайд
![На жаль, сайт суперкомп ютера](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img6.jpg)
Содержание слайда: На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії.
На жаль, сайт суперкомп’ютера не є надто зручним, а матеріали сайту часто не дублюються між різними мовами сайту. Деякі додаткові матеріали можна знайти на російськомовній версії сайту: http://icybcluster.org.ua/index.php?lang_id=1 – яка навіть не доступна з україномовної чи англомовної версії.
Також варто відзначити, що і ця версія сайту не охоплює усі можливості роботи з суперкомп’ютером.
№8 слайд
![Суперкомп ютер нституту к](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img7.jpg)
Содержание слайда: Суперкомп’ютер Інституту кібернетики складається з чотирьох обчислювальних кластерів: СКІТ-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 слайд
![СК Т- -вузловий кластер на](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img8.jpg)
Содержание слайда: СКІТ-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 слайд
![. Про паралельн технолог сну](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img9.jpg)
Содержание слайда: 2. Про паралельні технології
Існує декілька способів зайняти обчислювальні потужності кластера:
1. Запускання багатьох однопроцесорних завдань. Це може бути сприятливим варіантом, якщо потрібно провести багато незалежних обчислювальних експериментів з різними вхідними даними, причому час проведення кожного окремого розрахунку не має значення, а всі дані розміщаються в об'ємі пам'яті, доступному одному процесу.
2. Викликати у своїх програмах паралельні бібліотеки. Для деяких областей, наприклад, лінійна алгебра, доступні бібліотеки, які дозволяють вирішувати широке коло стандартних підзадач з використанням можливостей паралельної обробки.
№11 слайд
![Якщо звертання до таких п](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img10.jpg)
Содержание слайда: Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері.
Якщо звертання до таких підзадач становить більшу частину обчислювальних операцій програми, то використання такої паралельної бібліотеки дозволить одержати паралельну програму практично без написання власного паралельного коду. Прикладом такої бібліотеки є ScaLAPACK, яка доступна для використання на кластері.
3. Створювати власні паралельні програми. Це найбільш трудомісткий, але й найбільш універсальний спосіб. Існує кілька варіантів такої роботи, зокрема , вставляти паралельні конструкції в готові паралельні програми або створювати з "нуля" паралельну програму.
Надалі розглядатиметься саме останній варіант.
№12 слайд
![На суперкомп ютер встановлен](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img11.jpg)
Содержание слайда: На суперкомп’ютері встановлені компілятори мов 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 слайд
![Суперкомп ютер п дтриму так](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img12.jpg)
Содержание слайда: Суперкомп’ютер підтримує такі паралельні технології:
Суперкомп’ютер підтримує такі паралельні технології:
1. MPI. Програмний інтерфейс для передачі інформації, який дозволяє обмінюватися повідомленнями між процесами, які виконують одну задачу.
2. CUDA. Програмно-апаратна архітектура паралельних обчислень, яка дозволяє суттєво збільшити продуктивність обрахунків завдяки використанню графічних процесорів nVidia.
3. OpenCL. Фреймворк для написання паралельних програм на різноманітних графічних та центральних процесорах.
4. OpenMP. Відкритий стандарт для розпаралелювання програм на системах з загальною пам’яттю.
Надалі буде розглянуто такі класичні технології, як OpenMP та MPI.
№14 слайд
![. . OpenMP OpenMP використову](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img13.jpg)
Содержание слайда: 2.1. OpenMP
OpenMP використовується на системах із загальною пам’яттю, тобто коли різні потоки можуть звертатися до однієї і тієї самої ділянки пам’яті.
За допомогою директив OpenMP можна вказати компілятору, що деякі ділянки коду необхідно виконувати паралельно, декількома потоками (див. мал.).
Перевагою цієї технології є те, що програму, написану для виконання на одному процесорі, можна легко перетворити на паралельну, дописавши лише декілька рядків коду.
№15 слайд
![OpenMP п дтриму ться,](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img14.jpg)
Содержание слайда: 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) цю опцію можна ввімкнути у налаштуваннях проекту.
№17 слайд
![У код посл довно програми](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img16.jpg)
Содержание слайда: У код послідовної програми вставлено лише одну стрічку:
У код послідовної програми вставлено лише одну стрічку:
#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 вказу на](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img17.jpg)
Содержание слайда: Інструкція 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 слайд
![. . MPI Message Passing](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img18.jpg)
Содержание слайда: 2.2. MPI
Message Passing Interface (MPI) використовується на системах з роздільною пам’яттю, коли кожному процесору виділено свою область пам’яті.
На відміну від OpenMP, MPI передбачає існування декількох потоків з самого початку роботи програми. Протягом роботи програми потоки можуть комунікувати між собою за допомогою механізму «повідомлень» (див. мал.).
Така особливість роботи MPI не дозволяє переробити послідовну програму у паралельну, натомість доводиться повністю змінювати логіку програми.
№20 слайд
![MPI найб льш розповсюдженим](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img19.jpg)
Содержание слайда: MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI.
MPI є найбільш розповсюдженим стандартом інтерфейсу обміну даними в паралельному програмуванні та є найбільш природною технологією для суперкомп’ютера Інституту кібернетики. Багато паралельних бібліотек, встановлених на суперкомп’ютері, базуються саме на MPI.
Сам по собі MPI не є готовим програмним продуктом, а є лише набором правил, за якими мають працювати реалізації цієї технології. Серед її реалізацій виділяють відкриті MPICH та OpenMPI, безкоштовну Microsoft MPI та комерційну Intel MPI.
Компіляція та запуск програм, написаних з допомогою MPI, зазвичай супроводжується великими труднощами: необхідно підключати додаткові заголовні файли та файли бібліотек, а запуск програми виконується через додатковий файл, наприклад з іменем mpiexec.exe, де скомпільована програма передається одним із параметрів. Про ці налаштування найкраще прочитати в офіційних документаціях відповідних реалізацій.
№23 слайд
![П сля виконання функц MPI](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img22.jpg)
Содержание слайда: Після виконання функції 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, де](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img23.jpg)
Содержание слайда: На відміну від 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 слайд
![У цьому приклад механ зм](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img24.jpg)
Содержание слайда: У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо.
У цьому прикладі механізм передачі повідомлень застосовано неявно – у функціях MPI_Bcast та MPI_Reduce. Стандарт MPI передбачає значно ширші можливості, як наприклад, передача даних між двома конкретними потоками (з’єднання «точка–точка»), розсилка та збір даних від кількох потоків тощо.
Запуск скомпільованої програми, написаної за допомоги MPI, може запускатися таким чином:
<шлях до папки з mpiexec>\mpiexec.exe –np <кількість потоків> <шлях до скомпільованої програми>
Більше про MPI можна дізнатися, наприклад, у наступній книзі:
Г.И. Шпаковский, Н.В. Серикова «Программирование для многопроцессорных систем в стандарте MPI»
№29 слайд
![Зверху розташоване меню, зв](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img28.jpg)
Содержание слайда: Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера.
Зверху розташоване меню, звідки можна перемикатися між різними вікнами стану суперкомп’ютера.
На відкритій закладці «Запуск задач» розташовано деяку подібність «Провідника», форму запуску задач та журнал запусків.
Відкривати папки і файли можна натисканням на відповідну піктограму у другому стовпчику.
На жаль, графічний інтерфейс суперкомп’ютера недосконалий. Досить часто легше працювати з суперкомп’ютером у консольному режимі.
Встановлення із суперкомп’ютером здійснюється через протокол SSH.
У Linux досить виконати команду
ssh pmchnu@icybcluster.org.ua
та ввести пароль для з’єднання із суперкомп’ютером.
№30 слайд
![У Windows доводиться](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img29.jpg)
Содержание слайда: У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
У Windows доводиться користуватися сторонніми програмними засобами, наприклад, PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
№33 слайд
![На суперкомп ютер встановлена](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img32.jpg)
Содержание слайда: На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки:
На суперкомп’ютері встановлена операційна система CentOS Linux, тому у консольному режимі працюють усі стандартні команди Linux, наприклад, команда ls -al виведе вміст поточної папки:
№34 слайд
![Папка home users pmchnu](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img33.jpg)
Содержание слайда: Папка /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 годину.
№39 слайд
![. . Обм н файлами Щоби](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img38.jpg)
Содержание слайда: 3.1. Обмін файлами
Щоби завантажити деякий файл із сервера у графічному режимі, потрібно виділити необхідні файли і натиснути на кнопку «Скачати файл»:
У Linux за копіювання файлів відповідає утиліта scp. Так, щоби завантажити той самий файл засобами Linux, треба виконати команду:
scp pmchnu@icybcluster.org.ua:/home/users/pmchnu/SLAR3DIAG/SLAR3DIAG.f90 SLAR3DIAG.f90
№42 слайд
![WinSCP в дкрива одразу два](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img41.jpg)
Содержание слайда: WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами.
WinSCP відкриває одразу два дерева вибору файлів: на локальному комп’ютері та на суперкомп’ютері. За допомогою кнопок «Download» та «Upload» можна здійснювати обмін файлами.
Якщо ж користуватися веб-браузером, то необхідно натиснути на кнопку «Закачування», та вибрати відповідні файли:
№43 слайд
![. . Запуск MPI-програм Щоби](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img42.jpg)
Содержание слайда: 3.2. Запуск MPI-програм
Щоби запускати свої завдання на суперкомп’ютері, необхідно зробити 3 речі:
Завантажити на сервер програмний код на мові C, C++ чи Fortran.
Провести компіляцію файлу у бінарний файл.
Запустити бінарний файл на виконання.
Розпочнемо з запуску MPI-програм, як найбільш природного засобу для розпаралелювання на суперкомп’ютері Інституту кібернетики.
На суперкомп’ютері встановлені 2 реалізації MPI: OpenMPI та MVAPICH2. OpenMPI вважається стандартною, а MVAPICH2 призначений для інтеграції з технологією CUDA, хоча її можна використовувати й замість OpenMPI.
№44 слайд
![Спочатку розглянемо запуск](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img43.jpg)
Содержание слайда: Спочатку розглянемо запуск програм у консольному режимі.
Спочатку розглянемо запуск програм у консольному режимі.
На жаль, на керуючому вузлі, який одразу доступний для користувача, не встановлено жодних компіляторів. Компілятори встановлені безпосередньо на вузлах, на яких виконуються завдання. Тому необхідно з’єднатися із цими вузлами.
Спочатку необхідно здійснити запит на ресурси до якої-небудь черги. Найоптимальнішим варіантом є черга lite_task, у якої малий ліміт часу і яка найшвидше надасть ресурси. Запит здійснюється наступною командою:
salloc -p lite_task bash
Після виконання команди необхідно здійснити команду squeue, щоби дізнатися номер вузла, на якому були виділені ресурси.
№46 слайд
![Для того щоб п дтягнути ус](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img45.jpg)
Содержание слайда: Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються:
Для того щоб підтягнути усі необхідні заголовні файли та файли бібліотек, адміністраторами суперкомп’ютера були розроблені спеціальні скрипти для компіляції MPI-програм. Для будь-яких комбінацій бібліотек MPI та компіляторів ці скрипти називаються:
mpicc для мови C
mpicxx для мови C++
mpif77 для мови FORTRAN 77
mpif90 для мови Fortran 90
Для уникнення конфліктів між різними версіями, шляхи до папки зі скриптами формуються наступним чином:
/opt/<назва реалізації MPI>/<версія MPI>/<назва компілятора>/
<версія компілятора>/bin
№47 слайд
![Скрипти для б бл отеки](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img46.jpg)
Содержание слайда: Скрипти для бібліотеки 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 <бінарний файл>
№49 слайд
![Скомп льований б нарний файл](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img48.jpg)
Содержание слайда: Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом:
Скомпільований бінарний файл можна ставити у чергу виконання. Для цього можна виконати команду srun з наступним синтаксисом:
srun -p <черга> -n <кількість ядер> <шлях до скомпільованої програми>
Ця команда запускає програму у діалоговому режимі. Водночас, якщо необхідних ресурсів на суперкомп’ютері немає, то очікування виконання може зайняти досить довго часу.
Для того щоб зупинити виконання програми, необхідно натиснути комбінацію клавіш Ctrl + C.
Також необхідно зазначити, що при використанні OpenMPI команда srun поводитиме себе некоректно.
№50 слайд
![Приклад запуску програми](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img49.jpg)
Содержание слайда: Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel.
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку MVAPICH2 з компілятором Intel.
№51 слайд
![Б льш розповсюдженим вар](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img50.jpg)
Содержание слайда: Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди:
Більш розповсюдженим варіантом запуску задач є використання команди sbatch, яка виконує задачу у фоновому режимі. Синтаксис команди:
sbatch -p <черга> -n <кількість ядер> <скрипт запуску>
Так як задача виконується у фоновому режимі, то програма не має очікувати якихось додаткових дій від користувача, наприклад, введення значення змінних.
На відміну від srun, sbatch потребує в якості одного з параметрів не бінарний файл програми, а bash-скрипт, всередині якого має бути звернення, наприклад, до команди srun.
Адміністраторами суперкомп’ютера уже розроблені додаткові скрипти для запуску програм. Щоби запустити OpenMPI-програму необхідно запустити скрипт run.ompi, в якості параметрів якого передається бінарний файл програми з її параметрами. Для MVAPICH2 розроблено скрипт run.mvapich2, який, щоправда, нічого не виконує, окрім прямого запуску програми на суперкомп’ютері.
№52 слайд
![Приклад запуску програми](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img51.jpg)
Содержание слайда: Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel.
Приклад запуску програми обчислення числа π у черзі lite_task з чотирма процесорами. Використано бібліотеку OpenMPI з компілятором Intel.
№54 слайд
![Також сл дкувати за цим можна](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img53.jpg)
Содержание слайда: Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку:
Також слідкувати за цим можна на сайті, попередньо натиснувши на кнопку «Оновити» у третьому зверху рядку:
Після того, як задача виконається (а сама вона зникне зі списку запущених задач), у папці звідки була запущена команда sbatch, з’явиться файл з назвою slurm-<номер задачі>.out, у якому буде записано все, що мало записуватися у стандартний потік виводу.
№57 слайд
![Запускати задачу можна з веб-](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img56.jpg)
Содержание слайда: Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми.
Запускати задачу можна і з веб-інтерфейсу. Форма запуску на закладці «Запуск задач» є оболонкою для команди sbatch. Форма дозволяє автоматично застосувати скрипт run.ompi або задати свій скрипт. Серед недоліків форми є обов’язкове заповнення майже усіх полів форми.
Компіляція файлів формою передбачено, але потребує наявності файлу Makefile для Linux-івської утиліти make та виконується одночасно з запуском задачі, що далеко не завжди є прийнятним через неузгодженість між параметрами SLURM для цих двох задач.
№58 слайд
![Запуск з форми в дбува ться](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img57.jpg)
Содержание слайда: Запуск з форми відбувається таким чином:
Запуск з форми відбувається таким чином:
При цьому у каталозі, звідки було запущено задачу, створюється папка <ім’я задачі>.out, де буде розташовано 2 файли: файл з розширенням .err для відображення помилок і .out з вмістом стандартного потоку виводу.
№59 слайд
![. . Запуск OpenMP-програм](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img58.jpg)
Содержание слайда: 3.3. Запуск OpenMP-програм
Щоби скомпілювати OpenMP-програму, як і у випадку з MPI, необхідно з’єднатися з додатковим вузлом.
Компіляція здійснюється наступним чином:
<шлях до компілятора> -fopenmp <файл з програмним кодом> -o <бінарний файл>
для компіляторів GCC з заміною fopenmp на openmp у компіляторах Intel.
Компілятори GCC можна викликати без вказання їхнього повного шляху, їхні найновіші версії мають такі назви:
gcc44 для мови C
g++44 для мови C++
g77 для мови FORTRAN 77
gfortran44 для мови Fortran 90
№61 слайд
![Виконання за допомогою](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img60.jpg)
Содержание слайда: Виконання за допомогою команди srun виконується в 2 етапи:
Виконання за допомогою команди srun виконується в 2 етапи:
Спочатку встановлюється значення змінної середовища:
export OMP_NUM_THREADS=<кількість ядер>
Потім виконується команда наступного вигляду:
srun -p <черга> -n 1 -с <кількість ядер> <шлях до скомпільованої програми>
№62 слайд
![Виконання за допомогою](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img61.jpg)
Содержание слайда: Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти:
Виконання за допомогою команди sbatch потребує скрипта, який треба написати вручну. Найпростіше це зробити з веб-інтерфейсу. Треба натиснути на кнопку «Створити файл», ввести ім’я файлу, записати ті ж команди, що потребувала команда srun, і зберегти:
№64 слайд
![Для полегшення запуску](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img63.jpg)
Содержание слайда: Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином:
Для полегшення запуску OpenMP-програм можна написати нижченаведений скрипт. Наразі він зберігається у домашньому каталозі. Тоді виклик здійснюватиметься наступним чином:
sbatch -p <черга> ~/OpenMP.sh <шлях до скомпільованої програми> <кількість ядер>
№66 слайд
![. Деяк результати тестування](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img65.jpg)
Содержание слайда: 4. Деякі результати тестування
Тестування проводились на комп’ютері з 4-ядерним процесором Intel Core i3-2310M та на суперкомп’ютері Інституту кібернетики.
Програми були написані на мові Fortran.
На звичайному комп’ютері використовувався компілятор Intel з продукту Intel Parallel Studio XE 2015 Cluster Edition та, відповідно, бібліотека Intel MPI 5.
На суперкомп’ютері теж використовувався компілятор Intel з бібліотекою OpenMPI.
Замірявся лише «корисний» час – сам час виконання алгоритму.
Час замірявся у секундах.
Тестування проводилися на випадково згенерованих даних.
№68 слайд
![Програма розв язування СЛАР з](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img67.jpg)
Содержание слайда: Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP.
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму редукції. Використовувалась бібліотека OpenMP.
Як видно, цей алгоритм не дав виграшу при запуску на суперкомп’ютері.
№69 слайд
![Програма розв язування СЛАР з](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img68.jpg)
Содержание слайда: Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI.
Програма розв’язування СЛАР з тридіагональною матрицею із застосуванням паралельного алгоритму прогонки. Використовувалась бібліотека MPI.
№70 слайд
![Програма розв язування СЛАР з](/documents_6/fbfa7d538f9b812826bd8ce31c5fda9c/img69.jpg)
Содержание слайда: Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI.
Програма розв’язування СЛАР з квадратною матрицею із застосуванням паралельного алгоритму LU-розкладу. Більша кількість тестів на суперкомп’ютері з бібліотекою MPI.
Скачать все slide презентации Робота з суперкомпютером Інституту кібернетики Нан України одним архивом:
Похожие презентации
-
Параллельные вычисления: от суперкомпьютеров до телефонов
-
Показники ефективності роботи насосного обладнання
-
Скачать презентацию Обобщение знаний об изготовлении швейных изделий
-
Скачать презентацию Лицевая и изнаночная сторона тканей
-
Продолжение или погибель. Роботы
-
Вспомогательные алгоритмы. Движение робота по «квадрату»
-
Лаборатория робототехники и программирования
-
Роботы в ближайшем будущем
-
Характеристики современных компьютеров
-
Умные дома. Автоматизация и роботизация вашего жилья