НаУКМА

Інформаційний пакет ЄКТС

<< повернутись

Код: 315263

Назва:

Багатозадачне та паралельне програмування



Анотація: Метою курсу є ознайомлення студентів з основними поняттями паралельних обчислювальних систем та з методами паралельного та розподіленого програмування. Основне завдання курсу - опанування різних технік створення паралельних програм, використовуючи методи синхронізації потоків та уникати можливих блокувань системи. Студенти ознайомляться з доступним інструментарієм в мові програмування Java, для синхронізації та покращення багатопотокових додатків. Буде надано повний опис важливих команд MPI для створення паралельних систем для багатопроцесорних суперкомп'ютерів з розподіленою пам'яттю. Важливим аспектом курсу є формування навичок написання звіту за отриманими результатами роботи, групове виконання завдань та презентація самостійно опрацьованих тем.

Тип дисципліни: нормативна

Рік навчання: 4

Семестр: осінній

Кількість кредитів: 4 (загальна кількість годин - 120 год.; аудиторні години - 42 год.; лекції - 20 год.; практичні заняття - 22 год.; самостійна робота - 78 год.)

Форма контролю: екзамен

Викладач(і): Малащонок Г.І., д.н, проф.; Сідько А.А.

Результати навчання: -Застосовувати принципи багатопотокового програмування з використанням інструментарію мови програмування Java.
-Реалізовувати методи синхронізації потоків в мові програмування Java.
-Встановлювати емулятор суперкомп'ютера на операційній системі Linux.
-Розробляти програми з використанням точкових та колективних команд передачі повідомлень між процесорами суперкомп'ютера, використовуючи пакет OpenMPI.
-Пояснювати принципи блоково-рекурсивних алгоритмів.
Використовувати матричні об'єкти пакету MathPartner для розробки паралельних програм.


Спосіб навчання: аудиторний

Зміст дисципліни: Курс спрямований на опануванням студентами практичних навичок створення ефективних паралельних програм на мові програмування Java з використанням багатопотокового підходу та протоколу MPI для розподіленої пам'яті. Студенти навчяться створювати комунікатори і використовувати їх для колективної взаємодії процесорів, що складають комунікатор. Навчяться використовувати колективні команди пересилання з одночасною обробкою даних. Будуть отримані навички роботи з матричними об'єктами пакета MathPartner та їхнє використанням для розробки паралельних програм. Після закінчення курсу студенти отримають навички та знання для створення паралельних систем з розподіленою пам'яттю та багатопотокових додатків. Курс передбачає розробку паралельного багатопотокового варіанту одного з алгоритмів роботи з матрицями, проведення експериментів на ефективність запропонованого рішення, написання звіту за отриманими результатами.


Рекомендована література: РЕКОМЕНДОВАНА ЛІТЕРАТУРА
1. Малашонок Г. І., Сідько А. А. Паралельні обчислення на розподіленій пам'яті: OpenMpi,
Java, Math Partner. Навчальний підручник, 2020. 266 с.
2. MATH PARTNER. URL: http://mathpar.ukma.edu.ua
3. MPI: The Message Passing Interface. URL: http://www2.sscc.ru/Links/Litera/tech/mpi.html
4. Open MPI: Open Source High Performance Computing. URL: ttp://www.open-
mpi.org/software/ompi/v1.7/downloads/ openmpi-1.7.4.tar.bz2
5. The HPJava Project. URL: http://www.hpjava.org

ДОДАТКОВА ЛІТЕРАТУРА
1. George Bosilca, Aur?lien Bouteiller, Anthony Danalis, Mathieu Faverge, Thomas H?rault, and Jack Dongarra. 2013. PaRSEC: A programming paradigm exploiting heterogeneity for enhancing scalability. Computing in Science and Engineering 99 (2013), 1. https://doi.org/10.1109/MCSE.2013.98
2. Gustavson F.G., Karlsson L., K?gstr?m B. (2007) Three Algorithms for Cholesky Factorization on Distributed Memory Using Packed Storage. In: K?gstr?m B., Elmroth E., Dongarra J., Wa?niewski J. (eds) Applied Parallel Computing. State of the Art in Scientific Computing. PARA 2006. Lecture Notes in Computer Science, vol 4699. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75755-9_67
3. Javier Bueno, Judit Planas, Alejandro Duran, Rosa M. Badia, Xavier Martorell,Eduard Ayguad?, and Jes?s Labarta. 2012. Productive programming of GPUclusters with OmpSs.Proceedings of the 2012 IEEE 26th International Parallel andDistributed Processing Symposium, IPDPS 2012(2012), 557-568. https://doi.org/10.1109/IPDPS.2012.58
4. Jiri Dokulil, Martin Sandrieser, and Siegfried Benkner. 2016. Implementing the Open Community Runtime for Shared-Memory and Distributed-Memory Systems. Proceedings - 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, PDP 2016 (2016), 364-368. https: //doi.org/10.1109/PDP.2016.81
5. Malaschonok, G.I., Ilchenko E.A.: Recursive Matrix Algorithms in Commutative Domain for Cluster with Distributed Memory. 2018 Ivannikov Memorial Workshop (IVMEM), (Yerevan, Armenia, 3-4 May 2018) Publisher: IEEE, pp 40-47 (2019) arXiv:1903.04394
6. Malashonok G.I., Valeev Y.D.: The control of parallel calculations in recursive symbolic-numerical algorithms. In: Proceedings of conference of PaVt'2008 (St.-Petersburg). Chelyabinsk: Publishing house, pp 153-165 (2008)
7. Martin Tillenius. 2015. SuperGlue: A Shared Memory Framework Using Data Versioning for Dependency-Aware Task-Based Parallelization. SIAM Journal on Scientific Computing 37, 6 (2015), C617-C642. https://doi.org/10.1137/140989716
8. Michael Bauer, Sean Treichler, Elliott Slaughter, and Alex Aiken. 2012. Legion: Expressing locality and independence with logical regions. In International Conference for High Performance Computing, Networking, Storage and Analysis, SC. https://doi.org/10.1109/SC.2012.71
9. OpenMP 4.0 Complete Specifications. (2013). http://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf
10. Reazul Hoque, Thomas Herault, George Bosilca, Jack Dongarra: Dynamic Task Discovery in PaRSEC- A data-flow task-based Runtime. Proc. ScalA17, Proceedings of the 8th Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems, November 12-17, 2017, Denver, CO, USA (2017)
11. S. K. S. Gupta, C.-H. Huang, P. Sadayappan, and R. W. Johnson. A framework for generating distributed-memory parallel programs for block recursive algorithms. J. Parallel and Distributed Computing, 34:137-153, 1996.
12. Schonhage A., Strassen V. Schnelle Multiplikation grosser Zahlen Computing. 1971. V.7. pp 281-292.
13. Strassen V. Gaussian Elimination is not optimal Numerische Mathematik. 1969. V.13. pp 354-356.
14. T. Heller, H. Kaiser, and K. Iglberger. 2013. Application of the ParalleX execution model to stencil-based problems. Computer Science - Research and Development 28, 2-3 (2013), 253-261. https://doi.org/10.1007/s00450-012-0217-1


Форми та методи навчання: лекції, практичні заняття, самостійна робота

Методи й критерії оцінювання: Задовільне опанування курсу (допуск до екзамену) досягається через присутність на заняттях, працю на лекціях і практичних заняттях, успішно виконаних лабораторних роботах, зданому колоквіуму. Очікується, що за роботу в триместрі (на лекціях і практичних) спудей може отримати 70 балів рейтингу. На екзамені можна отримати решту - 30 балів рейтингу.

Мова навчання: українська