Паралельне програмування та високопродуктивні обчислення в фізиці ядра та елементарних частинок

ID: 6380
Навчальна дисципліна професійної підготовки
Рік впровадження: 
2020.
Кількість кредитів ЄКТС: 
7.50.
Містить курсову роботу.
Форма контрою: 
Екзамен. Захист курсової роботи.
Кількість аудиторних занять: 
16 годин лекційних занять, 60 годин лабораторних занять.

Мета дисципліни:
-    Ознайомити студентів із сучасними концепціями паралельних обчислень та можливостями сучасних високопродуктивних обчислювальних систем.
-    Сформувати уявлення про типові апаратні вимоги обчислювальних задач;
-    Сформувати у студентів навички створення та реалізації паралельних алгоритмів та програм.
Завдання дисципліни:
-    Сформувати уявлення про можливості сучасних високопродуктивних обчислювальних систем.
-    Навчити студентів перетворювати лінійні програми у паралельні.
-    Навчити студентів створювати та реалізовувати паралельні алгоритми обчислень.
-    Ознайомити студентів із програмним забезпеченням для паралельних обчислень.  
 
Основні результати навчання
 
РН01. Використовувати концептуальні та спеціалізовані знання і розуміння актуальних проблем і досягнень обраних напрямів сучасної теоретичної і експериментальної фізики та/або астрономії для розв'язання складних задач і практичних проблем.
РН02. Проводити експериментальні та/або теоретичні дослідження з фізики та астрономії, аналізувати отримані результати в контексті існуючих теорій, робити аргументовані висновки (включаючи оцінювання ступеня невизначеності) та пропозиції щодо подальших досліджень.
РН04. Обирати і використовувати відповідні методи обробки та аналізу даних фізичних та/або астрономічних досліджень і оцінювання їх достовірності.
РР10. Відшуковувати інформацію і дані, необхідні для розв'язання складних задач фізики та/або астрономії, використовуючи різні джерела, зокрема, наукові видання, наукові бази даних тощо, оцінювати та критично аналізувати отримані інформацію та дані.
РН12. Розробляти та застосовувати ефективні :алгоритми та спеціалізоване програмне забезпечення для дослідження моделей фізичних та/або астрономічних об'єктів і процесів, обробки результатів експерименті і спостережень.
 
Форми організації освітнього процесу та види навчальних занять
 
Л – лекційні заняття; ЛЗ – лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; Кз – самостійні контрольні завдання; КР — курсова робота; МКР – модульна контрольна робота; К – консультації.
 
 
Тематика та види навчальних занять
 
1 тиждень
Л1. Важкі розрахунки у наукових дослідженнях.
ЛЗ1.Створення програми, що містить кілька функцій та виконує тривалі розрахунки.
ЛЗ2. Виявлення вузьких місць програми.    
СРС. К.

2 тиждень
ЛЗ3. Пошук місць розпаралелювання розрахунків.
ЛЗ4. Ручне розпаралелювання виконання програми.

СРС. К.

3 тиждень

Л2. Розподілення обчислень.
ЛЗ5. Створення та компіляція програми з OpenMP.
ЛЗ6. Оголошення спільних та локальних змінних в OpenMP.
СРС.К.

4 тиждень
ЛЗ7. Обчислення зі спільною пам'яттю.
ЛЗ8. Програми з циклом for та його паралельне виконання засобами OpenMP.
СРС.К.

5 тиждень
Л3. Створення програми, що розгалужує обчислення на кілька потоків в OpenMP.
ЛЗ9. Синхронізація потоків обчислення в OpenMP..
ЛЗ10. Розбиття циклу на порції.    

СРС.К.

6 тиждень
ЛЗ11. Програма, що вимагає об’єднання результатів обчислення різних потоків.
ЛЗ12.    Режими зведення даних.
СРС.К.

7 тиждень
Л4. Розгалужені алгоритми із застосуванням OpenMP
ЛЗ13.     Програми, що містить блок коду для паралельного виконання за допомогою MPI.
ЛЗ14.    Різні параметри запуску паралельної програми.    
СРС.К.

8 тиждень
ЛЗ15. Технологія MPI та встановлення початкових параметрів процесу.
ЛЗ16. Область розрахунків для даного процесу за початковими параметрами.
МКР1. СРС. К.

9 тиждень
Л5. Розгалужені алгоритми із застосуванням MPI.
ЛЗ17.     Програми за технологією MPI.
ЛЗ18. Надсилання даних іншому процесу за технологією MPI.
СРС. К.

10 тиждень
ЛЗ19. Різні режими синхронізації процесів MPI.
ЛЗ20. Різні режими зведення даних за технологією MPI.
СРС. К.

11 тиждень
Л6. Переваги та недоліки систем із розподіленою пам'яттю. MPI.
ЛЗ21. Програми з використанням бібліотеки GEANT4.
ЛЗ22. Хід роботи програми та точок можливого розгалуження розрахунків в GEANT4.
СРС. К.

12 тиждень
ЛЗ23. Паралельні програми на GEANT4
ЛЗ24. Програма, що здійснює моделювання засобами GEANT4 у декілька потоків.
СРС. К.

13 тиждень
Л7. Паралельне виконання програм у GEANT4. 
ЛЗ25. Програма на GEANT4, що потребує зведення кінцевого результату з кількох процесів.
ЛЗ26. Клас об’єднувача результатів моделювання.
СРС. К.

14 тиждень
ЛЗ27. Розрахунок оптимального режиму навантаження на обчислювальну систему.
ЛЗ28. Розподіл навантаження за допомогою планувальника задач SLURM.
СРС. К.

15 тиждень
Л8. Паралельні програми у GEANT4.
ЛЗ29. Віддалена консоль SSH.
ЛЗ30. Перегляд та зміна черги завдань.
МКР2.СРС. К.

Індивідуальна робота

Виконується КР. 
Метою КР є навчити студентів користуватись джерелами інформації, які потрібно використовувати для теоретичних досліджень, а також формування розуміння зв’язку отриманої ними інформації на лекційних і практичних заняттях з реальними прикладами і розрахунками. 
5 тиждень – видача тем КР та узгодження їх з здобувачами.    
6-8 тижні –добір та аналіз літературних джерел за темою КР.
9 тиждень – складання змісту КР.
10-13 тиждень – написання КР.
14 тиждень – підготовка презентації.
15 тиждень - захист КР.

Самостійна робота
 
Самостійна робота складає 149 години. Розподіл самостійної роботи за видами навчальних робіт:
1) підготовка до лекційних занять – 18 годин;
2) підготовка до лабораторних занять –  40 годин;
3) підготовка до МКР – 30 годин;
4) виконання КР – 30 годин;
5) підготовка до екзамену – 31 година.
 
 
Процедура оцінювання
 
В організації навчального процесу при вивченні дисципліни застосовується поточний та підсумковий контроль. В поточний контроль полягає у контрольних опитуваннях на лабораторних заняттях щодо завдань самостійної роботи (оцінюються максимум в 20 балів) і виконанні двох модульних контрольних робіт (кожна оцінюється в 30 балів). Підсумковий контроль згідно з учбовим планом є заліком, який виставляється за результатами двох модулів.
Модульна контрольна робота виконується у письмовій формі та складається з 2 частин:
1) відповіді на два питання,  кожне з яких охоплює одну з тем лекційного курсу (максимум 10 балів за кожне питання; разом 20 балів)
2) розбір завдання з ЛЗ (10 балів).
Кожний модуль оцінюється у максимально можливі 50 балів.

Семестровий модуль № 1

ЛЗ1. Оцінка за виконання – 1 бал. Термін надання – 1 тиждень.
ЛЗ2. Оцінка за виконання – 1 бал. Термін надання – 1 тиждень.
ЛЗ3. Оцінка за виконання – 1 бал. Термін надання – 2 тиждень.
ЛЗ4. Оцінка за виконання – 1 бал. Термін надання – 2 тиждень.
ЛЗ5. Оцінка за виконання – 1 бал. Термін надання – 3 тиждень.
ЛЗ6. Оцінка за виконання – 1 бал. Термін надання – 3 тиждень.
ЛЗ7. Оцінка за виконання – 1 бал. Термін надання – 4 тиждень.
ЛЗ8. Оцінка за виконання – 1 бал. Термін надання – 4 тиждень.
ЛЗ9. Оцінка за виконання – 1 бал. Термін надання – 5 тиждень.
ЛЗ10. Оцінка за виконання – 1 бал. Термін надання – 5 тиждень.
ЛЗ11. Оцінка за виконання – 1 бал. Термін надання – 6 тиждень.
ЛЗ12. Оцінка за виконання – 1 бал. Термін надання – 6 тиждень.
ЛЗ13. Оцінка за виконання – 1 бал. Термін надання – 7 тиждень.
ЛЗ14. Оцінка за виконання – 1 бал. Термін надання – 7 тиждень.
ЛЗ15. Оцінка за виконання – 1 бал. Термін надання – 8 тиждень.
МКР1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2

ЛЗ16. Оцінка за виконання – 1 бал. Термін надання – 8 тиждень.
ЛЗ17. Оцінка за виконання – 1 бал. Термін надання – 9 тиждень.
ЛЗ18. Оцінка за виконання – 1 бал. Термін надання – 9 тиждень.
ЛЗ19. Оцінка за виконання – 1 бал. Термін надання – 10 тиждень.
ЛЗ20. Оцінка за виконання – 1 бал. Термін надання – 10 тиждень.
ЛЗ21. Оцінка за виконання – 1 бал. Термін надання – 11 тиждень.
ЛЗ22. Оцінка за виконання – 1 бал. Термін надання – 11 тиждень.
ЛЗ23. Оцінка за виконання – 1 бал. Термін надання – 12 тиждень.
ЛЗ24 Оцінка за виконання – 1 бал. Термін надання – 12 тиждень.
ЛЗ25 Оцінка за виконання – 1 бал. Термін надання – 13 тиждень.
ЛЗ26. Оцінка за виконання – 1 бал. Термін надання – 13 тиждень.
ЛЗ27. Оцінка за виконання – 1 бал. Термін надання – 14 тиждень.
ЛЗ28. Оцінка за виконання – 1 бал. Термін надання – 14 тиждень.
ЛЗ29. Оцінка за виконання – 1 бал. Термін надання – 15 тиждень.
ЛЗ30. Оцінка за виконання – 1 бал. Термін надання – 15 тиждень.
МКР2. Модульна контрольна робота – 30 балів (15 тиждень).

Максимальна оцінка за повний обсяг виконаних навчальних елементів дисципліни – 100 балів.
Підсумковим контролем з дисципліни є іспит. Екзаменаційний білет складається з трьох питань. Два з них стосуються лекційного курсу і формулюються таким чином щоб вони охоплювали декілька взаємопов'язаних частин цього курсу. Ці питання оцінюються в 35 балів кожне. Третє питання стосується курсу практичних занять і оцінюється в 30 балів. Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.

 
Умови допуску до підсумкового контролю
 
До підсумкового контролю допускаються студенти, які здали перший модуль не менше ніж на 30 балів.
 
 
Політика освітнього процесу
 
Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.
 
Робота, яка виконана після встановлених викладачем термінів, не приймається.
 
Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0».
 
Складання/перескладання екзаменів – за встановленим деканатом розкладом.
 
Під час лекції здійснювати телефонні дзвінки забороняється.
 
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів та складання екзамену з дисципліни.