
- •Назвіть основні етапи розвитку паралельної обробки.
- •Що було передумовою розвитку паралелізму в програмному забезпеченні?
- •Назвіть важливі причини використання паралелізму в програмному забезпеченні.
- •Які етапи можна виділити в процесі розв’язання будь-якої задачі на паралельному комп’ютері?
- •У яких галузях виникають надскладні обчислювальні завдання?
- •Назвіть способи підвищення продуктивності комп’ютерів.
- •З якими проблемами можна зіштовхнутися під час використання багатопроцесорних систем?
- •Визначте характеристики доступних вам багатопроцесорних машин.
- •Скільки процесорів на вашій машині, і які їх робочі частоти?
- •Наскільки великий розмір кеш-пам’яті багатопроцесорних машин, як вона організована? Який час доступу?
- •Як організовано сполучну мережу?
- •Який час віддаленого доступу до пам’яті або передачі повідомлення?
- •13. Дослідіть будь-який комп’ютер. Які в нього центральній процесор, пам'ять, операційна система, форма представлення чисел?
- •Як формується закон Амдаля? Який аспект паралельних обчислень дозволяє врахувати цей закон?
- •У чому можуть полягати відмінності паралельних обчислювальних систем?
- •3.Що покладено в основу класифікації Фліна?
- •У чому полягає принцип розподілу багатопроцесорних систем на мультипроцесорні й мультикомп’ютери. ?
- •Які класи систем вам відомі для мультипроцесорів?
- •У чому полягають позитивні і негативні сторони симетричних мультипроцесори.
- •Класи систем що вам відомо для мультикомп’ютерів?
- •У чому полягаю позитивні і негативні сторони кластерних систем?
- •Які топології мереж передачі даних найчастіше використовується?
- •10, У чому полягають особливості мереж передачі даних для кластерів?
- •16. Розгляньте додаткові способи класифікації комп'ютерних систем.
- •18. Назвіть сервіси базової Grid-системи.
- •У чому полягають основні способи досягнення паралелізму?
- •2. Назвіть основні форми декомпозиції.
- •3. Что означают термины: декомпозиция задачи, декомпозиция данных, декомпозиция потоков?
- •4 Поясніть значення різних декомпозицій.
- •5 До чого призведе керування одночасними діями та їх можливою взаємодією?
- •6 Назвіть паралельні шаблони програмування й зробіть стислий огляд типів проблем, до яких може бути застосований кожний зразок.
- •7 Що являє собою розсіювання помилки? з яких кроків складається дифузний алгоритм?
- •8. Опишіть найдоцільніший підхід для паралельної реалізації дифузного алгоритму. На чому ґрунтується ефективний розподіл роботи серед потоків
- •9.Назвіть різновиди паралельної обробки
- •10. До чого зводиться задача розпаралелювання програми?
- •Як визначається модель «операції - операнди»?
- •Як визначається розклад для розподілу обчисленнь між процесорами?
- •Як визначається час виконання паралельного алгоритму
- •4. Який розклад є оптимальним?
- •6. Які оцінки слід використовувати як характеристику часу послідовного розвязання задачі?
- •7. Як визначити мінімально можливий час паралельного розв’язання задачі за графом «Операнди-операції»
- •8. Які залежності можуть бути отримані для часу паралельного розв’язання задачі у разі збільшення або зменшення кількості процесорів?
- •9. За якої кількості процесорів можуть бути отримані часи використання паралельного алгоритму зіставні за порядком з оцінками мінімально можливого часу розв’язання задачі?
- •10. Як визначається поняття прискорення та ефективності?
- •11. У чому полягае суперечнисть показникив прискорення и ефективности?
- •12. Який алгоритм е маштабованим? Наведить приклади методив з ризным ривнем маштабованости.
- •14. Якими е основни етапи проектування и розробки методив паралельних обчислень?
- •15. Яки основни вимоги моють бути забезпечени пид час розробки паралельних алгоритмив?
- •Якими є основні дії на етапі визначення інформаційних залежностей?
- •У чому полягають основні дії на етапі масштабування наявного набору підзадач?
- •У чому полягають основні дії на етапі розподілу підзадач за процесорами обчислювальної системи?
- •У чому полягає проблема розпаралелювання послідовного алгоритму підсумовування числових значень?
- •У чому полягає каскадна схема підсумовування? з якою метою розглядається модифікований варіант цієї схеми?
- •У чому полягає відмінність показників прискорення й ефективності для розглядуваних варіантів каскадної схеми підсумовування?
- •У чому полягає паралельний алгоритм обчислення всіх окремих сум послідовності числових значень?
- •Розробіть модель і виконайте оцінку показників прискорення й ефективності паралельних обчислень:
- •Наведіть характеристики топології мережі передачі даних
- •Назвіть загальну характеристику механізмів передачі даних
- •3 Характеристика передачи данных от одного процессора всем другим.
- •4Характеристики топологий коммуникационной среды
- •5Циклический сдвиг.
- •7Топология двоичного дерева.
- •8Классы эффективно реализуемых задач для топологий сети
- •9 Эффективность коммуникационных систем при циклическом сдвиге и кольцевой передаче.
- •1Концепция Linda
- •2 Барьерная синхронизация в Linda
- •3 Сильный и слабые стороны Linda
- •4 Пример перемножения матриц на Linda
- •5 Функциональные возможности pvm
- •6. Какие технологии программирования поддерживает pvm?
- •7. Базовые механизмы pvm?
- •8. Как осуществляется обмен сообщениями в системе pvm?
- •9. Требования к pvm программам
- •13. Модель dvm
- •15. Мобильность dvm-программ
- •14. Основные конструкции dvm
- •16. Модели программирования и параллелизма dvm
- •17. Возможности повышения эффективности dvm-программ
- •18. В чем заключается стандарт corba?
- •19. Из каких базовых компонентов состоит corba-спецификация?
- •20. Каким образом можно создать простую распределенную программу?
- •Как реализовано mpi?
- •Какие протоколы используются для обмена сообщениями между процессами?
- •Какое назначение библиотеки mpe?
- •Какие основные функции mpe?
- •5. Какая методика оценки эффективности вычислений?
- •6. Как создается файл регистрации?
- •7. Какие процедуры выполняются во время создания лог-файлов?
- •8. Какие способы анализа лог-файлов вы знаете?
- •9. Какая разница между форматами лог-файлов alog, clog slog?
- •10. Какой минимальный набор средств является достаточным для организации параллельных вычислений в системах с разделенной памятью?
- •11. В чем важность стандартизации средств передачи сообщений?
- •12. Что следует понимать под параллельной программой?
- •13. Какой минимальный набор функций mpi позволяет начать разработку параллельных программ?
- •17 У чому відмінність парних і колективних операцій передачі даних?
- •18 У яких ситуаціях слід застосовувати бар’єрну синхронізацію ?
- •19 Які режими передачі даних підтримуються у mpi?
- •20 Як організується неблокуючий обмін даними у mpi ?
- •21 Які колективні операції передачі даних передбачено у mpi ?
- •22 У яких ситуаціях може бути корисною упакування й розпакування даних ?
- •23 Що розуміють у mpi під комунікатором ?
- •24 Для чого може потребуватися створення нових комунікаторів ?
- •25 Що розуміють у mpi під віртуальною топологією ?
- •26 Які види топологій передбачено в mpi ?
- •27 Для чого може виявитися корисним використанням віртуальних топологій ?
- •2Какие библиотеки использует OpenMp? Их назначение.
- •3.Структура предложения с использованием распараллеливая.
- •4. Что такое раздел?
- •3. Какие циклы можно распараллелить и почему?
- •7. Для чего используется раздел reduction?
- •8. Как и для чего применяется синхронизация потоков?
- •10. Назовите основные ошибки при создании параллельной программы.
- •9.Дайте характеристику анализатора Intel vTune Performance analyzer.
- •11. Выведите на экран текстовую строку с помощью разных потоков.
5. Какая методика оценки эффективности вычислений?
Закон Амдала. Одной из главных характеристик параллельных систем является ускорение R параллельной системы, которое определяется выражением
где T1 − время решения задачи на однопроцессорной системе; а Tn − время решения той же задачи на n-процессорной системе.
Пусть
W = Wск + Wпр,
где W − общее число операций в задаче;
Wпр − число операций, которые можно выполнять параллельно;
Wcк − число скалярных (не-распараллеливаемых) операций.
Обозначим также через t время выполнения одной операции. Тогда получаем известный закон Амдала:
Здесь a = Wск /W − удельный вес скалярных операций.
Закон Амдала определяет принципиально важные для параллельных вычислений положения.
1. Ускорение зависит от потенциального параллелизма задачи (величина 1 – а) и параметров аппаратуры (числа процессоров n).
2. Предельное ускорение определяется свойствами задачи.
Пусть, например, a = 0,2 (что является реальным значением), тогда ускорение ≤ 5 при любом числе процессоров, т. е. максимальное ускорение определяется потенциальным параллелизмом задачи. Очевидной является чрезвычайно высокая чувствительность ускорения к изменению величины а.
Сетевой закон Амдала. Закон Амдала не отражает потерь времени на межпроцессорный обмен сообщениями. Эти потери могут не только снизить ускорение вычислений, но и замедлить вычисления по сравнению с однопроцессорным вариантом. Поэтому необходима некоторая модернизация выражения.
Перепишем формулу следующим образом:
где Wc − количество передач данных; tc − время одной передачи.
Выражение
является сетевым законом Амдала. Этот закон определяет следующие особенности многопроцессорных вычислений.
Коэффициент сетевой деградации вычислений:
определяет объем вычислений, приходящийся на одну передачу данных (по затратам времени). При этом сa определяет алгоритмическую составляющую коэффициента деградации, обусловленную свойствами алгоритма, а сt − техническую составляющую, которая зависит от соотношения технического быстродействия процессора и аппаратуры коммуникационной сети.
Следовательно для повышения скорости вычислений следует воз-действовать на обе составляющие коэффициента деградации. Для многих задач и сетей коэффициенты сa и сt могут быть вычислены аналитически, хотя они определяются множеством факторов: алгоритмом задачи, размером данных, реализацией функций об-мена библиотеки MPI, использованием разделяемой памяти, техническими характеристиками коммуникационных сред и их протоколов.
Даже если задача обладает идеальным параллелизмом, сетевое ускорение определяется величиной
и уменьшается при увеличении числа процессоров. Следовательно, сетевой закон Амдала должен быть основой оптимальной разработки алгоритма и программирования задач, предназначенных для решения на многопроцессорных ЭВМ.
В некоторых случаях используется еще один параметр для измерения эффективности вычислений – коэффициент утилизации:
6. Как создается файл регистрации?
7. Какие процедуры выполняются во время создания лог-файлов?
В MPE созданы также библиотеки профилирования, не требующие явной модификации кода программы. Регистрация осуществляется путем замещения вызовов функций MPI на соответствующие профилирующие функции. Самый простой способ генерировать логфайлы состоит в том, чтобы откомпилировать программу со специальной библиотекой MPE, которая использует возможность профилирования MPI перехватом всех вызовов MPI.
Первая библиотека профилирования проста. Версия каждой MPI_Xxx функции вызывает операцию PMPI_WTIME, которая поставляет временную метку до и после каждого обращения к соответствующей PMPI_Xxx подпрограмме. Полученные времена для каждого процесса записываются в файлы, один файл на процесс. Эта версия не принимает во внимание вложенные обращения, которые происходят, когда MPI_BCAST, например, реализована в терминах MPI_SEND и MPI_RECV.
Вторая профилирующая библиотека генерирует логфайлы с отсортированными по времени событиями или состояниями. Во время выполнения программы вызовы MPE_Log_event сохраняют события некоторых типов в памяти. Эти данные объединяются при выполнении MPI_Finalize. Функция MPI_Pcontrol в течение выполнения программы может использоваться, чтобы приостановить и перезапустить операции регистрации. По умолчанию, регистрация включена. Вызов MPI_Pcontrol(0) выключает регистрацию, MPI_Pcontrol(1) включает регистрацию.
Обращения к MPE_Log_event при самопрофилировании происходят автоматически при каждом обращении к MPI. В дополнение к использованию предопределенных библиотек регистраций MPE вызовы регистрации MPE могут быть также вставлены в программу MPI самим пользователем. Эти состояния называются определяемыми пользователем состояниями.
Третья библиотека делает возможной простую форму анимации программы в реальном масштабе времени. Библиотека графики MPE содержит подпрограммы, которые позволяют нескольким процессам совместно использовать дисплей X, который не связан с любым специфическим процессом. Эта позволяет осуществить прорисовку стрелок, которые представляют движение сообщения во время выполнения программы.
В профилирующей библиотеке, перехватывающей вызов некото-рой функций MPI, необходимо выполнить ряд действий до и после вызова этой функции. Тело некоторой функции MPI_Xxx будет вы-глядеть примерно так:
int MPI_Xxx( . . . )
{ do something for profiling library
int retcode = PMPI_Xxx( . . . );
do something else for profiling library
return retcode;
}
Библиотеки регистрации (Logging Libraries) – наиболее полезные и широко используемые библиотеки профилирования в MPE. Они по-зволяют сочетать гибкость и быстроту создания параллельных про-граммных продуктов. Регистрационные файлы могут быть созданы вручную, путем вставки вызовов MPE в MPI программу, или автома-тически, компонуясь с соответствующими библиотеками MPE, или объединяя вышеупомянутые два метода.