Розподілені системи та паралельні обчислення - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційні управляючі системи та технології
Статус дисципліни Навчальна дисципліна професійної та практичної підготовки (за вибором студентів)
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 4 курс, осінній семестр
Обсяг дисципліни 135 годин (36 годин – Лекції, 36 годин – Лабораторні, 63 годин – СРС)
Семестровий контроль/ контрольні заходи Екзамен/екзаменаційна робота
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про керівника курсу / викладачів

Лектор, лабораторні: к.т.н., доцент Шимкович Володимир Михайлович

shymkovych.volodymyr@gmail.com

Telegram: @volodymyr_shymkovych

Розміщення курсу https://campus.kpi.ua

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Опис дисципліни. При вивченні даної дисципліни, студенти вивчать теоретичні основи паралельних обчислювальних систем та отримають початковий досвід в розробці програмного забезпечення, що реалізує паралельні обчислення. На лабораторних заняттях отримають початковий досвід створення програмних систем з паралельними обчисленнями на платформах з загальною пам’яттю, розподіленою пам’яттю та графічними процесорами. Проведуть розробку та дослідження паралельних систем систем різного призначення за допомогою мови програмування С/С++ та бібліотек OpenMP, MPI та CUDA. В курсі передбачений контроль якості отриманих знань у вигляді експрес завдань за допомогою програмних пакетів, контрольних та модульних контрольних робіт.

Предмет навчальної дисципліни: основні поняття паралельних систем, вступ до паралельних систем, топології та види паралельних систем, системи з загальною пам’яттю, системи з розподіленою пам’яттю, графічні процесори, програмні засоби реалізації та дослідження паралельних обчислювальних систем на С/С++ та бібліотек OpenMP, MPI та CUDA.

Міждисциплінарні зв’язки. Дисципліна Програмні засоби проектування та
реалізації нейромережевих систем базується на дисциплінах: Програмування – 1. Основи програмування; Програмування – 2. Структури даних та алгоритми; Технології розроблення програмного забезпечення.

  • Мета навчальної дисципліни. Підготовка висококваліфікованих фахівців, які володіють основними поняттями теорії паралельних обчислювальних систем, термінами паралельних обчислювальних систем, структурою та властивостями паралельних обчислювальних систем, методами створення паралельних обчислювальних систем, етапами проектування паралельних обчислювальних систем, програмними засобами реалізації паралельних обчислювальних систем, способами підвищення ефективності паралельних обчислювальних систем.

Основні завдання навчальної дисципліни

Знання:

  • структура та властивості паралельних обчислювальних систем;

  • топології та види паралельних систем;

  • системи з загальною пам’яттю;

  • системи з розподіленою пам’яттю;

  • ролі та місця паралельних обчислювальних систем в інформаційно-технологічному середовищі їх використання;

  • етапи проектування паралельних обчислювальних систем;

  • програмних засобів реалізації паралельних обчислювальних систем;

  • способи підвищення ефективності паралельних обчислювальних систем;

Уміння:

  • реалізовувати програмні засоби для паралельних обчислювальних систем;

  • реалізовувати арифметичні операції за допомогою OpenMP на різній кількості обчислювальних потоків;

  • розподіляти обчислення між потоками в системах з загальною пам’яттю;

  • програмно реалізовувати векторні та атомарні обчислення в системах з загальною пам’яттю та синхронізувати обчислення;

  • використовувати опції і підказки компілятора для паралелізації обчислень;

  • писати програми для систем з розподіленою пам’яттю на основі передачі повідомлень, розподіляти обчислення в системах з розподіленою пам’яттю;

  • розробляти програми, що виконуються на графічних процесорах;

  • розподіляти обчислення між потоками на графічних процесорах.

Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

Пререквізити: вміти користуватися комп’ютером на рівні адміністратора, вміти працювати з віртуальними машинами (створювати, налаштовувати, модифікувати), базові знання в області програмування, вміти програмувати мовою С/С++.

Постреквізити: проектування та реалізація програмних засобів з використанням нейромережевих додатків.

Після проходження дисципліни студенти зможуть реалізовувати програмні засоби для паралельних обчислювальних систем, реалізовувати арифметичні операції за допомогою OpenMP на різній кількості обчислювальних потоків, розподіляти обчислення між потоками в системах з загальною пам’яттю, програмно реалізовувати векторні та атомарні обчислення в системах з загальною пам’яттю та синхронізувати обчислення, використовувати опції і підказки компілятора для паралелізації обчислень, писати програми для систем з розподіленою пам’яттю на основі передачі повідомлень, розподіляти обчислення в системах з розподіленою пам’яттю, розробляти програми, що виконуються на графічних процесорах, розподіляти обчислення між потоками на графічних процесорах, а також використовувати різні види пам’ятті.

Зміст навчальної дисципліни

  1. Розвиток обчислювальних систем та паралельних систем. Організація пам’яті в комп’ютері.

  2. Основні архітектури багатопроцесорних обчислювальних систем. Їх класифікація.

  3. Архітектура комп'ютера із загальною пам'яттю. Архітектура комп'ютера з розподіленою пам'яттю.

  4. Задачі що можуть потребувати суперкомп’ютерних обчислень. Інструменти створення паралельних програм. Процес, поток і багатопотоковость.

  5. Технологія OpenMP. Особливості та її компоненти технології OpenMP.

  6. Паралельні завдання та опції, що впливають на їх виконання.

  7. Модель пам'яті. Класи змінних в OpenMP. Режими виконання багатопоточних програм. Вкладений паралелізм. Дерективи розподілу завдань між потоками.

  8. Дерективи розпаралелювання виконання циклів.

  9. Розподіл декількох структурних блоків між потоками, дерективи, що для цього використовуються. Розподіл роботи на основі незалежних завдань, дерективи, що для цього використовуються.

  10. Синхронізація виконання різних потоків. Прості директиви. Замки.

  11. Що таке векторизация і навіщо вона потрібна.

  12. Нові можливості в стандарті OpenMP 4.0. Основні опції компілятора Intel. Основні можливості Intel Parallel Studio. Основні можливості Intel Parallel Inspector. Основні можливості Intel Parallel Amplifier.

  13. Поняття моделі передачі повідомлень(MPI). Технологія MPI. Загальна структура програми по технології MPI.

  14. Основні команди передачі повідомлень по технології MPI, принцип роботи.

  15. Основні поняття мови програмування CUDA C, host, deviсe, kernel.

  16. Організація обчислень на GPU. Сітки, блоки, нитки, Warp в GPU.

  17. Compute Capability в GPU. Яка остання версія Compute Capability і її можливості.

  18. Архітектура відеокарт NVidia. Типи відеокарт що підтримують CUDA.

  19. Функція cudaGetDeviceProperties(), як відбуваться робота з векторами в CUDA, математичні функції CUDA, робота з матрицями в CUDA.

Лекційні заняття

Розділ 1. Розвиток обчислювальних систем і паралельних обчислень. Загальні положення

Розділ 2. Основні архітектури багатопроцесорних обчислювальних систем.

Розділ 3. Паралельні обчислювальні системи з спільною пам’яттю

Розділ 4. Технологія OpenMP. Особливості та її компоненти технології OpenMP.

Розділ 5. Паралельні обчислювальні системи з розподіленою пам’яттю. Технологія MPI.

Розділ 6. Обчислювальні системи на базі графічних процесорів GPU.

Розділ 7. Основи мови програмування CUDA

Лабораторні заняття

1. Налаштування редактора написання програм Visual Studio для OpenMP і перша програма.

2. Арифметичні операції над елементами двох масивів за допомогою OpenMP.

3. Перемноження великих матриць на різній кількості потоків за допомогою OpenMP.

4. Розподіл роботи на основі незалежних завдань для потоків за допомогою OpenMP.

5. Векторні обчислення на системах з спільною пам’яттю.

6. Атомарні обчислення на системах з спільною пам’яттю.

7. Опції компілятора.

8. Основи MPI, передача даних між процесорами в системах з розподіленою пам’яттю.

9. Розподіл арифметичних обчислень між процесорами.

10. Векторні обчислення в системах з розподіленою пам’яттю.

11. Обробка одновимірних масивів і матриць за допомогою CUDA.

12. CUDA для обробки графіки і створення анімацій.

13. Векторні обчислення і синхронізація на графічних процесорах.

14. Використання константної пам’яті.

15. Атомарні обчислення на графічних процесорах.

Навчальні матеріали та ресурси

Базова література

  1. Миллер, Р. Последовательные и параллельные алгоритмы. Общий подход / Р. Миллер, Л. Боксер. — М. : Бином. Лаборатория знаний, 2015.

  2. Боресков, А. В. Параллельные вычисления на GPU. Архитектура и программная модель CUDA / А. В. Боресков. — М. : Изд-во МГУ, 2015.

  3. Пасічник В.В. , Лупенко С.А. , Луців А.М. Паралельні та розподілені обчислення. – Магнолія 2006, 2021. – 648с.

  4. Дорошенко А.Е. Математические модели и методы организации высоко-производительных параллельных вычислений. - К.,"Наукова думка", 2000.- 177 с.

  5. MPI: A Message-Passing Interface Standard. − Int. J. Of Supercomputer Applications and High Performance Computing. – 1994. – Vol. 8, No. 3/4.− P. 159 –416

Допоміжна література

  1. S.G. Akl, Evolving Computational Systems .—in «Handbook of parallel computing models algorithms and applications», Chapman-Hall, 2008. Pp. 26-47.

  2. S.G. Akl, Superlinear performance in real-time parallel computation, The Journal of Supercomputing, Vol. 29, No. 1, 2004, pp. 89–111

  3. H.W. Lawson, Parallel Processing in Industrial Real-Time Applications, Prentice Hall, Englewood Cliffs, New Jersey, 1992.

    1. Luccio, L. Pagli, and G. Pucci, Three non conventional paradigms of parallel computation, Lecture Notes in Computer Science, 678, 1992, 166-175.
  4. Ф.Н. Энслоу. Мультипроцессоры и параллельная обработка.−М.: "Мир", 1976.

  5. Р. Хокни, К. Джесхоуп. Параллельные ЭВМ.− М.: "Радио и связь", 1986.

  6. Системы параллельной обработки / под ред. Д. Ивенса // М.: Мир, 1985.- 415с.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

Лекційні заняття

№ з/п Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1

Тема 1.1. Структура та зміст курсу. РСО.

Тема 1.2. Загальні поняття дисципліни. Розвиток обчислювальних систем та паралельних систем.

Лекція 1. Вступ. Загальні поняття. Розвиток обчислювальних систем та паралельних систем. Організація пам’яті в комп’ютері.

Структура дисципліни «Розподілені системи та паралельні обчислення», РСО. Загальні поняття галузі паралельних обчислювальних систем. Розвиток обчислювальних систем та паралельних систем. Організація пам’яті в комп’ютері.

Література: [2, Гл.1], [3, Гл.1]

Завдання на СРС. Вплив способу роботи з пам’яттю на швидкість обчислень.

2

Тема 1.3. Огляд основних концепцій.

Тема 2.1. Основні архітектури багатопроцесорних обчислювальних систем.

Лекція 2. Огляд основних концепцій. Основні архітектури багатопроцесорних обчислювальних систем. Їх класифікація.

Огляд основних концепцій побудови багатопроцесорних обчислювальних систем. Основні архітектури багатопроцесорних обчислювальних систем. Їх класифікація.

Література: [1, Гл.1], [3, Гл.1]

Завдання на СРС. Класифікувати домашній комп’ютер та кафедральну мережу.

3

Тема 2.2. Архітектура комп'ютера.

Лекція 3. Архітектура комп'ютера із загальною пам'яттю. Архітектура комп'ютера з розподіленою пам'яттю.

Архітектура комп'ютера із загальною пам'яттю. Архітектура комп'ютера з розподіленою пам'яттю. Огляд та аналіз різних архітектур багатопроцесорних паралельних обчислювальних систем, розгляд принципів їх побудови і виконання обчислень;

Література: [1, Гл.1.1.2; Гл.3], [3, Гл.1]

Завдання на СРС. Сучасні обчислювальні системи із загальною та розподіленою пам'яттю.

4

Тема 3.1. Інструменти створення паралельних програм.

Лекція 4. Задачі що можуть потребувати суперкомп’ютерних обчислень. Інструменти створення паралельних програм. Процес, поток і багатопотоковость.

Розгляд задач що можуть потребувати суперкомп’ютерних обчислень, інструментів створення паралельних програм. Процес, поток і багатопотоковость.

Література: [1, Гл.5], [3, Гл.6]

Завдання для СРС. Проаналізувати задачі, що потребують суперкомп’ютерних обчислень, які обчислення в цих задачах можуть виконуватись паралельно.

5

Тема 3.2. Технологія OpenMP.

Лекція 5. Технологія OpenMP. Особливості та її компоненти технології OpenMP.

Вступ до технології OpenMP. Особливості та її компоненти технології OpenMP.

Література: [1, Гл.14], [3, Гл.6;Гл.9], [6, Гл.2]

Завдання для СРС. Огляд та аналіз розвитку технології OpenMP.

6

Тема 3.3. Паралельні завдання

Лекція 6. Паралельні завдання та опції, що впливають на їх виконання.

Паралельні завдання та опції, що впливають на їх виконання. Розподіл обчислень на окремі паралельні завдання.

Література: [1, Гл.5;Гл.6], [3, Гл.10], [6, Гл.3;Гл.4]

Завдання для СРС. Огляд та аналіз задач, що можуть бути розподілені на паралельні завдання.

7

Тема 3.4. Модель пам'яті.

Лекція 7. Модель пам'яті. Класи змінних в OpenMP. Режими виконання багатопоточних програм. Вкладений паралелізм. Дерективи розподілу завдань між потоками.

Модель пам'яті. Класи змінних в OpenMP. Режими виконання багатопоточних програм. Вкладений паралелізм. Дерективи розподілу завдань між потоками;

Література: [1, Гл.12], [2, Л.6], [3, Гл.9]

Завдання для СРС. Огляд та аналіз задач з різними типами розподілу завдань між потоками.

8

Тема 4.1. Розпаралелювання циклів.

Лекція 8. Дерективи розпаралелювання виконання циклів.

Прискорення програмного продукту за допомогою деректив розпаралелювання виконання циклів.

Література: [1, Гл.1;Гл.4], [2, Гл.4;Гл.5]

Завдання для СРС. Перетворення циклів для можливості їх розпараллення;

9

Тема 4.2. Розподіл роботи на основі незалежних завдань.

Лекція 9. Розподіл роботи на основі незалежних завдань.

Розподіл декількох структурних блоків між потоками, дерективи, що для цього використовуються. Розподіл роботи на основі незалежних завдань, дерективи, що для цього використовуються.

Завдання для СРС. Огляд та аналіз програмних проектів по реалізації паралельних систем з розподілом роботи на основі незалежних завдань.

10

Тема 5.1. Синхронізація та векторизація

Лекція 10. Синхронізація та векторизація.

Синхронізація виконання різних потоків. Прості директиви. Замки. Що таке векторизация і навіщо вона потрібна.

Література: [7, Гл.2]

11

Тема 5.2. Нові можливості в стандарті OpenMP 4.0.

Лекція 11. Нові можливості в стандарті OpenMP 4.0.

Нові можливості в стандарті OpenMP 4.0. Основні опції компілятора Intel. Основні можливості Intel Parallel Studio. Основні можливості Intel Parallel Inspector. Основні можливості Intel Parallel Amplifier.

Література: [7, Гл.4]

Завдання для СРС. Огляд та аналіз різних стандартів OpenMP.

12

Тема 5.3. Технологія MPI.

Лекція 12. Технологія MPI.

Поняття моделі передачі повідомлень(MPI). Технологія MPI. Загальна структура програми по технології MPI.

Література: [7, Гл.2;3]

Завдання для СРС. Огляд та аналіз сучасних комп’ютерних систем з розподіленою пам’яттю.

13

Тема 6.1. Команди MPI.

Лекція 13. Команди MPI.

Основні команди передачі повідомлень по технології MPI, принцип роботи.

Література: [1, Гл.9], [2, Л.9], [3, Гл.10], [7, Гл.11]

Завдання для СРС. Огляд та наліз сучасних обчислювальних систем MPI.

14

Тема 6.3. Графічні процесори

Лекція 14. Графічні процесори, основні поняття

Розвиток графічних процесорів. Архітектура графічних процесорів. Основні поняття мови програмування CUDA C, host, deviсe, kernel.

Література: [1, Гл.4], [2, Л.13]

Завдання для СРС. Різниця між центральними процесорами та графічними процесорами?

15

Тема 7.1. Організація обчислень на GPU.

Лекція 16. Організація обчислень на GPU.

Організація обчислень на GPU. Сітки, блоки, нитки, Warp в GPU. Compute Capability в GPU. Яка остання версія Compute Capability і її можливості.

Література: [7, Гл.10]

Завдання для СРС. Можливості різних версій Compute Capability

16

Тема 7.2. Архітектура відеокарт NVidia.

Лекція 16. Архітектура відеокарт NVidia.

Архітектура відеокарт NVidia. Типи відеокарт що підтримують CUDA.

Література: [7, Гл.10]

Завдання для СРС. Архітектура новітніх відеокарт NVidia

17

Тема 7.3. Арифметичні та векторні обчислення на графічних процесорах

Лекція 17. Арифметичні та векторні обчислення на графічних процесорах

Функція cudaGetDeviceProperties(), як відбуваться робота з векторами в CUDA і синхронізація, математичні функції CUDA, робота з матрицями в CUDA. Атомарні обчислення.

Література: [7, Гл.10], [8]

Завдання для СРС. CUDA для обробки графіки і створення анімацій.

18

Лекція 18. Модульна контрольна робота

На контрольну роботу виноситься увесь попередній матеріал.

Завдання включають теоретичну частину, тестове питання та практичну частини.

Завдання для СРС. Повторити матеріал 1-17 лекцій.

**
**

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин
1

Лабораторна робота 1. Налаштування редактора написання програм Visual Studio для OpenMP і перша програма.

Налаштувати редактор написання програм Visual Studio для використання бібліотеки OpenMP. Написати програму, що виводить на екран ПІБ студента, вивід реалізувати паралельно на кожному потоці наявного процесора. Література: [3, Гл.2]

4
2

Лабораторна робота 2. Арифметичні операції над елементами двох масивів за допомогою OpenMP.

Написати програму, що реалізує арифметичні операції над елементами двох масивів за допомогою OpenMP.

Література: [3, Гл.2]

2
3

Лабораторна робота 3. Перемноження великих матриць на різній кількості потоків за допомогою OpenMP.

Написати програму що реалізує перемноження великих матриць на різній кількості потоків за допомогою OpenMP. Порівняти час виконання.

Література: [3, Гл.6]

2
4

Лабораторна робота 4. Розподіл роботи на основі незалежних завдань для потоків за допомогою OpenMP.

Написати програму що реалізує рекурсивні задачі по рисуванню сніжинки Коха та Ханойської башти, розподілити роботу на основі незалежних завдань для потоків за допомогою OpenMP.

Література: [7]

2
5

Лабораторна робота 5. Векторні обчислення на системах з спільною пам’яттю.

Написати програму що реалізує обчислення 4 сум рядів, задачу Вірта. Використати векторизацію паралельних обчислень

Література: [7], [8]

2
6

Лабораторна робота 6. Атомарні обчислення на системах з спільною пам’яттю.

Написати програму що реалізує атомарні обчислення на системах з спільною пам’яттю.

Література: [7]

2
7

Лабораторна робота 7. Опції компілятора.

Написати програму, що реалізує обчислення 4-х сум. Використати опції компілятора для розпаралелювання обчислень. Порівняти результат використання різних опцій.

2
8

Лабораторна робота 8. Основи MPI, передача даних між процесорами в системах з розподіленою пам’яттю.

Написати програму, що реалізує сумування двох масивів на двох процесорах.

4
9

Лабораторна робота 9. Розподіл арифметичних обчислень між процесорами.

Написати програму, що реалізує множення двох великих матриць, обчислення розподілити на 4 процесорах.

2
10

Лабораторна робота 10. Векторні обчислення в системах з розподіленою пам’яттю.

Написати програму, що реалізує векторні обчислення в системах з розподіленою пам’яттю..

2
11

Лабораторна робота 11. Обробка одновимірних масивів і матриць за допомогою CUDA.

Написати програму, що реалізує арифметичні операції на графічному процесорі над двома матрицями.

4
12

Лабораторна робота 12. CUDA для обробки графіки і створення анімацій.

Написати програму, що реалізує обробку графіки і створення анімацій.

2
13

Лабораторна робота 13. Векторні обчислення і синхронізація на графічних процесорах.

Написати програму що реалізує обчислення 4 сум рядів, задачу Вірта. Використати векторизацію паралельних обчислень і синхронізацію ниток.

2
14

Лабораторна робота 14. Використання константної пам’яті.

Написати програму що реалізує використання константної пам’яті, порівняти швидкодію роботи програми без використання константної пам’яті.

2
15

Лабораторна робота 15. Атомарні обчислення на графічних процесорах.

Написати програму, що реалізує атомарні обчислення на графічних процесорах.

2

Самостійна робота студента/аспіранта

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Вплив способу роботи з пам’яттю на швидкість обчислень. 2
2 Класифікувати домашній комп’ютер та кафедральну мережу. 2
3 Сучасні обчислювальні системи із загальною та розподіленою пам'яттю. 4
4 Проаналізувати задачі, що потребують суперкомп’ютерних обчислень, які обчислення в цих задачах можуть виконуватись паралельно. 4
5 Огляд та аналіз розвитку технології OpenMP. 2
6 Огляд та аналіз задач, що можуть бути розподілені на паралельні завдання. 2
7 Огляд та аналіз задач з різними типами розподілу завдань між потоками. 4
8 Перетворення циклів для можливості їх розпараллення. 4
9 Огляд та аналіз програмних проектів по реалізації паралельних систем з розподілом роботи на основі незалежних завдань. 4
10 Огляд та аналіз різних стандартів OpenMP. 4
11 Огляд та аналіз сучасних комп’ютерних систем з розподіленою пам’яттю. 8
12 Огляд та наліз сучасних обчислювальних систем MPI. 2
13 Різниця між центральними процесорами та графічними процесорами? 4
14 Можливості різних версій Compute Capability 3
15 Архітектура новітніх відеокарт NVidia 2
16 CUDA для обробки графіки і створення анімацій. 2
17 Підготовка до заліку по всьому матеріалу модуля. 10

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які ставляться перед студентом:

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;

  • на лекції викладач користується власним презентаційним матеріалом; використовує гугл-диск для викладання матеріалу поточної лекції, додаткових ресурсів, лабораторних робіт та інше; викладач відкриває доступ до певної директорії гугл-диска для скидання електронних лабораторних звітів та відповідей на МКР;

  • на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;

  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;

  • модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); результат пересилається у файлі до відповідної директорії гугл-диску;

  • заохочувальні бали виставляються за: активну участь на лекціях; участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць; презентацій по одній із тем СРС дисципліни тощо. Кількість заохочуваних балів на більше 10;

  • штрафні бали виставляються за: невчасну здачу лабораторної роботи. Кількість штрафних балів не більше 10.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Рейтинг студента з дисципліни складається з балів, що він отримує за:

  1. виконання та захист 15 лабораторних робіт;

  2. виконання модульньної контрольної роботи (МКР);

  3. заохочувальні та штрафні бали.

Система рейтингових балів та критерії оцінювання

Лабораторні роботи:

«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 5 балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 4 бали;

«задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином електронний протокол до лабораторної роботи – 3 бал;

«незадовільно», незадовільна відповідь та/або не оформлений належним чином електронний протокол до лабораторної роботи – 0 балів.

За кожне заняття запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.

Модульні контрольні роботи:

«відмінно», повна відповідь (не менш ніж 90% потрібної інформації) – 25 балів;

«добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 20 балів;

«задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 10 бали;

«незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів.

Заохочувальні бали

– за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо); за активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує студентам задати свої питання) 1-2 бали, але в сумі не більше 10;

– презентації по СРС – від 1 до 5 балів.

Міжсесійна атестація

За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 10 балів (2 лабораторні). На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 5 балів.

За результатами 13 тижнів навчання максимально можлива кількість балів – 70 балів (4 лабораторні, МКР). На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 40 балів.

Максимальна сума вагових балів контрольних заходів протягом семестру складає:

RD = (15*rлаб+rмкр)/2=(15*5+25 + (rз - rш))/2=(100 + (rз - rш))/2,

де rлаб – бал за лабораторну роботу (0…5);

rмкр – бал за написання МКР (0…25);

rз – заохочувальні бали за активну участь на лекціях, презентації, участь в олімпіадах, конкурсі роботи, наукові роботи за тематикою дисципліни (0…10);

rзш – штрафні бали.

Екзамен:

Умовою допуску до екзамену є зарахування всіх лабораторних робіт, написання модульної контрольної роботи та стартовий рейтинг не менше 35 балів.

На екзамені студенти виконують письмову контрольну роботу. Кожен білет містить три теоретичних запитання (завдання). Перелік теоретичних питань наведений у додатку 1. Кожне запитання (завдання) оцінюється у 15 балів.

Система оцінювання питань:

«відмінно», повна відповідь, не менше 90% потрібної інформації, що виконана згідно з вимогами до рівня «умінь», (повне, безпомилкове розв’язування завдання) – 14-15 балів;

«добре», достатньо повна відповідь, не менше 75% потрібної інформації, що виконана згідно з вимогами до рівня «умінь або є незначні неточності (повне розв’язування завдання з незначними неточностями) – 10-14 балів;

«задовільно», неповна відповідь, не менше 60% потрібної інформації, що виконана згідно з вимогами до «стереотипного» рівня та деякі помилки (завдання виконане з певними недоліками) – 7-9 бали;

«незадовільно», відповідь не відповідає умовам до «задовільно» – 0-6 балів.

Сума балів за залікову контрольну роботу переводиться до залікової оцінки згідно з таблицею:

Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою

Кількість балів Оцінка
100-95 Відмінно
94-85 Дуже добре
84-75 Добре
74-65 Задовільно
64-60 Достатньо
Менше 60 Незадовільно

Є не зараховані лабораторні роботи або

не зарахована модульна контрольна робота

Не допущено

Додаткова інформація з дисципліни (освітнього компонента)

  • перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;

  • на початку семестру викладач аналізує існуючі курси по тематиці дисципліни та пропонує пройти відповідні безкоштовні курси студентам. Після отриманням студентом сертифікату проходження дистанційних чи онлайн курсів за відповідною тематикою, викладач закриває відповідну частину курсу (лабораторні чи лекції) за попередньою домовленістю з групою.

Робочу програму навчальної дисципліни (Силабус):

Складено к.т.н., доц.., Шимкович Володимир Миколайович

Ухвалено кафедрою ІСТ (протокол № 1 від 30.08.2021 р.)

Погоджено Методичною комісією факультету[1] (протокол № 1 від 30.08.2021 р.)

Додаток 1

Перелік теоретичних питань на екзамен

  1. Пояснити організацію пам’яті в комп’ютері.

  2. Які є основні архітектури багатопроцесорних обчислювальних систем. Їх класифікація.

  3. Пояснити архітектуру SISD.

  4. Пояснити архітектуру MISD.

  5. Пояснити архітектуру SIMD.

  6. Пояснити архітектуру MIMD.

  7. Пояснити архітектуру комп'ютера із загальною пам'яттю.

  8. Пояснити архітектуру комп'ютера з розподіленою пам'яттю.

  9. Які задачі можуть потребувати суперкомп’ютерних обчислень.

  10. Які є інструменти створення паралельних програм.

  11. Пояснити що таке процес, поток і багатопотоковость.

  12. Пояснити що таке технологія OpenMP.

  13. Особливості та її компоненти технології OpenMP.

  14. Паралельні завдання та опції, що впливають на їх виконання.

  15. Модель пам'яті. Класи змінних в OpenMP.

  16. Режими виконання багатопоточних програм. Владений паралелізм.

  17. Які дерективи розподілу завдань між потоками Вам відомі?

  18. Які дерективи розпаралелювання виконання циклів Вам відомі?

  19. Пояснити принцип розподілу завдань між потоками static.

  20. Пояснити принцип розподілу завдань між потоками dynamic

  21. Пояснити принцип розподілу завдань між потоками guided

  22. Пояснити принцип розподілу завдань між потоками auto

  23. Пояснити як відбувається розподіл декількох структурних блоків між потоками. Які дерективи для цього використовуються?

  24. Пояснити як відбувається розподіл роботи на основі незалежних завдань. Які дерективи для цього використовуються?

  25. Синхронізація виконання різних потоків. Прості директиви.

  26. Синхронізація виконання різних потоків. Замки

  27. Що таке векторизация і навіщо вона потрібна?

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

  29. Які є нові можливості в стандарті OpenMP 4.0.

  30. Які є основні опції компілятора Intel.

  31. Які властивості опції компілятора О1?

  32. Які властивості опції компілятора О2?

  33. Які властивості опції компілятора О3?

  34. Які властивості опції компілятора ipo?

  35. Які властивості опції компілятора parallel?

  36. Які основні можливості Intel Parallel Studio?

  37. Які основні можливості Intel Parallel Inspector?

  38. Які основні можливості Intel Parallel Amplifier?

  39. Які основні поняття моделі передачі повідомлень(MPI)?

  40. Що таке технологія MPI?

  41. Яка загальна структура програми по технології MPI?

  42. Які є основні команди передачі повідомлень по технології MPI? Пояснити принцип роботи.

  43. Основні поняття мови програмування CUDA C, пояснити що таке host, deviсe, kernel?

  44. Пояснити організацію обчислень на GPU. Що таке сітки, блоки, нитки?

  45. Що таке Warp в GPU?

  46. Що таке Compute Capability в GPU? Яка остання версія Compute Capability і її можливості?

  47. Пояснити архітектуру відеокарт NVidia.

  48. Які типи відеокарт підтримують CUDA, від і до?

  49. Функція cudaGetDeviceProperties()? Які параметри має та що повертає?

  50. Як відбуваться робота з векторами в CUDA?

  51. Математичні функції CUDA?

  52. Робота з матрицями в CUDA.

[1] Методичною радою університету – для загальноуніверситетських дисциплін.