Розпаралелювання програм

Матеріал з testwiki
Версія від 15:24, 26 березня 2022, створена imported>InternetArchiveBot (Виправлено джерел: 2; позначено як недійсні: 0.) #IABot (v2.0.8.6)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

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

Розпаралелювання може бути ручним, автоматизованим або напівавтоматизованим. Щоб оцінити його якість застосовують наступні критерії:

  • Прискорення Sp=T1/Tp, де Tp — час виконання розпаралеленої програми на p процесорах, T1 — час виконання вхідної програми. В ідеальному випадку (відсутність накладних витрат на організацію паралелізму) дорівнює p.
  • Завантаженість Sp/p=T1/pTp, яка показує долю використання процесорів. В ідеальному випадку дорівнює 1, або 100 %. Ця величина, як правило, значно наочніше характеризує ефективність паралелізму в серії випробувань при різних p, ніж Sp, особливо на графіках.

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

Див. також

Посилання

Шаблон:Паралельні обчислення Шаблон:Refimprove Шаблон:Compu-prog-stub