Кластерні розрахунки

Галузь знань: 12 Інформаційні технології
Спеціальність: 121 Інженерія програмного забезпечення
Освітня програма: Програмне забезпечення систем

Викладач: доцент Верес Максим Миколайович (лекції)

Викладається: в 1-му семетрі магістратури.
Загальний обсяг: 28 год, з яких:
  • Лекції – 28 год.

Мета та завдання дисципліни

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

Предмет дисципліни

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

Вимоги до знань та вмінь

Для вивчення курсу Кластерні розрахунки студент повинен прослухати наступні курси:
  • Основи програмування,
  • Програмування,
  • Теорія алгоритмів та математична логіка,
  • Алгоритми та складність,
  • Основи об'єктно-орієнтованого програмування,
  • Об'єктно-орієнтоване програмування,
  • Розподілені обчислення.
В результаті вивчення навчальної дисципліни студент повинен
знати:
  • відомості про методи побудови паралельних алгоритмів обчислення складних задач на багатопроцесорних комп'ютерах для наукових розрахунків;
та вміти:
  • проектувати та розробляти паралельні програми на багатопроцесорних комп'ютерах для наукових розрахунків.

Програма курсу

Змістовий модуль 1: Мета та задачі паралельної обробки даних. Класифікація. Моделі обчислень та методи аналізу ефективності.

Тема 1: Мета та задачі паралельної обробки даних.
  • Важливість розуміння проблематики сучасних паралельних обчислень.
Тема 2: Зв'язок між елементами паралельних систем. Топологія.
  • Типові топології мереж передачі даних.
  • Класифікація и оцінка продуктивності.
Тема 3: Класифікація багатопроцесорних систем.
  • Класифікація багатопроцесорних систем (за Фліном, Фенга, Шора, Хендлера, Хокні, Шнайдера, Джонсона, Скіллікорна) порівняння, відмінності.
Тема 4: Векторно-конвейерні суперкомп'ютери. Кластерні системи.
  • Мультипроцесорні системи(SMP).
  • MIMD-комп'ютери з роздільною пам’яттю.
  • Системи з масовим паралелизмом(MPP).
  • MIMD-комп'ютери з розподільною пам'яттю.
  • Кластер робочих станцій.
Тема 5: Концепція Grid та метакомп'ютінг.
  • Принципи та технологія метаком'ютінга, побудова Grid систем.
Тема 6:
  • Прискорення та Ефективність.
  • Закон Амдала та наслідки.
  • Розрахунок реального прискорення паралельного підходу перед лінійним.
Тема 7: Аналіз комунікаційної складності паралельних алгоритмів.
  • Критерій оцінки топології мережі.
  • Алгоритми маршрутизації і методи передачи даних.
  • Типові операції взаємодії.
  • Представлення топології мережі.
Тема 8: Інструментальні засоби паралельного програмування.
  • Бібліотеки паралельного та розподіленого програмування.
  • Технологія паралельного програмування mpC., Норма, Linda, V-Ray.
Модульна контрольна робота 1

Змістовий модуль 2: Інструментальні засоби паралельного програмування. Паралельні алгоритми розв'язку задач.

Тема 9: Технологія розробки для багатопроцесорних систем с розподіленою пам'яттю (стандарт передачи повідомлень MPI).
  • Загальна характеристика стандарту MPI.
  • Режими передачі даних.
  • Колективні операції.
  • Керування процесами.
  • Колективні операції.
  • Створення логічних топологій.
Тема 10: Технологія розробки для багатопроцесорних систем (стандарт передачи повідомлень PVM).
  • Синтаксис стандарту PVM.
  • Подібність та розбіжність MPI та PVM.
Тема 11: Технологія розробки для багатопроцесорних систем (стандарт DVM).
  • Синтаксис стандарту DVM.
Тема 12: Технологія розробки для багатопроцесорних систем с розділеною пам'яттю (стандарт OpenMP).
  • Синтаксис стандарту OpenMP.
  • Створення паралельних блоків.
  • Робота з даними.
  • Подібність та розбіжність MPI та OpenMP.
Тема 13: Технологія розробки для багатопроцесорних систем (стандарт MC#).
  • Синтаксис стандарту MC#.
  • Паралельне програмування для систем з розподіленою і роздільною пам'яттю.
Тема 14: Принципи розробки паралельних методів.
  • Моделювання паралельних програм.
  • Етапи розробки:
    • розділення обчислень,
    • виділення інформаційних залежностей,
    • масштабування і розподілення обчислень між процесами.
Тема 15: Паралельні матричні обчислення.
  • Матрично-векторне множення, множення матриць, розв'язок систем лінійних рівнянь.
  • Схеми розпаралелення матричних обчислень.
Тема 16: Паралельне сортування.
  • Паралельне сортування.
  • Порівняння ефективності паралельно сортування в залежності від кількості обчислювальних вузлів.
Тема 17: Паралельний розв'язок диференційних рівнянь.
  • Паралельний розв'язок диференційних рівнянь.
  • Ефективність паралельного розв'язку диференційних рівнянь.
Модульна контрольна робота 2

Рекомендована література

Основна:

  1. Воеводин В.В., Воеводин Вл.В. Паралельные вычисления. – Санкт-Петербург, – 2004.
  2. Грегори Р. Эндрюс. Основы Многопоточного, параллельного и распределенного программирования. – Москва-Санкт-Петеррбург-Киев, – 2003.
  3. Немнюгин С., Стесик О. Паралельное програмирование для многопроцессорных вычислительных систем. – Санкт-Петербург, – 2002.
  4. Миллер Р. Последовательные и паралельные алгоритмы. – Москва, – 2006.
  5. mcsharp.net

Додаткова:

  1. Макс К. Гофф. Сетевые распределенные вычисления: достижения и проблемы. – Москва, – 2005.
  2. parallel.ru
  3. dtf.ru
  4. intel.com
  5. openmp.org
  6. mpi-forum.org