Програмування паралельних процесів

Загальна схема розробки алгоритмів паралельних обчислень для розв’язку складних задач. Особливості моделювання паралельних програм. Аналіз масштабованості реалізації паралельних обчислень. Етапи оцінки комунікаційної трудомісткості паралельних алгоритмів.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык украинский
Дата добавления 30.08.2017
Размер файла 392,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Уявимо величину зсуву у вигляді двоїстого коду. Кількість ненульових позицій коду визначає кількість етапів в схемі реалізації операції циклічного зсуву. На кожному етапі виконується операція зсуву з величиною кроку, яка задається найстаршою ненульовою позицією значення (наприклад, за умови вихідної величини зсуву на першому етапі виконується зсув з кроком 4, на другому етапі крок зсуву дорівнює 1). Виконання кожного етапу (окрім зсуву з кроком 1) полягає в передачі даних по шляху, який включає дві лінії зв'язку. Як результат, верхня оцінка для тривалості виконання операції циклічного зсуву визначається співвідношенням

.

(8.30)

Рис. 5. Схема відображення гіперкуба на кільце (в кружках наведені номери процесорів гіперкуба)

Передача пакетів

Використання пересилання пакетів може підвищити ефективність виконання операції циклічного зсуву для топології гіперкуб. Реалізація всіх необхідних комунікаційних дій в цьому випадку може бути забезпечена шляхом відправки кожним процесором всіх даних, що пересилаються,безпосередньо процесорам призначення. Застосування методу по координатної маршрутизації дасть змогу уникнути колізій при використанні ліній передачі даних (в кожний момент часу для кожного каналу буде існувати не більше одного готового для відправки повідомлення) Довжина найбільшого шляху за умови такого розсилання даних визначається як , де - найбільше ціле значення таке, що - дільник величини зсуву . Тоді тривалість операції циклічного зсуву можна охарактеризувати з використанням виразу

(8.31)

(за умови достатньо великих розмірів повідомлень тривалістю передачі службових даних можна знехтувати і тривалість виконання операції можна визначити як ).

Методи логічного зображення топології комунікаційного середовища

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

Способи логічного зображення (відображення) топологій характеризується наступними трьома основними характеристиками:

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

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

- збільшення вершин (expansion), яке обчислюється як відношення кількості вершин в логічній та фізичній топологіях.

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

Представлення кільцевої топології у вигляді гіперкуба

Встановлення відповідності між кільцевою топологією та гіперкубом можна виконати з використанням двійкового рефлексивного коду Грея (binary reflected Gray code), який визначається у відповідності з виразами:

,

(8.32)

де задає номер значення в коді Грея, а N є довжиною цього коду. Для ілюстрації на рис. 8.5. показано відображення кільцевої топології на гіперкуб для мережі з процесорів.

Код Грея для N=1

Код Грея для N=1

Код Грея для N=1

Номери процесорів

гіперкуба

кільця

0

0 0

0 0 0

0

0

1

0 1

0 0 1

1

1

1 1

0 1 1

3

2

1 0

0 1 0

2

3

1 1 0

6

4

1 1 1

7

5

1 0 1

5

6

1 0 0

4

7

Важлива властивість коду Грея: сусідні значення та мають тільки одну бітову позицію, що різниться. Як результат, сусідні вершини в кільцевій технології відображаються на сусідні процесори в гіперкубі.

Відображення топології решітки на гіперкуб

Відображення топології решітки на гіперкуб можна виконати в рамках підходу, використаного для кільцевої структур мережі. Тоді для відображення решітки на гіперкуб розмірності можна прийняти правило, що елементу решітки з координатами відповідає процесор гіперкуба з номером:

.

де операція || означає конкатенацію кодів Грея.

Оцінка трудомісткості операцій передачі даних для кластерних систем

Для кластерних обчислювальних систем одним з широко застосовуваних способів побудови комунікаційного середовища є використання концентраторів (hub) чи (switch) для об'єднання процесорних вузлів кластера в єдину обчислювальну мережу. В цих випадках топологія мережі кластера представляє собою повний граф, в якому є певні обмеження на одночасність виконання комунікаційних операцій. Так, за умови використання концентраторів передача даних в кожний поточний момент може виконуватися тільки між двома процесорними вузлами; комунікатори можуть забезпечувати взаємодію декількох пар процесорів, що не перетинаються. Інший часто використовуваний напрямок при створенні кластерів полягає у використанні методу передачі пакетів (часто реалізується на основі стеку протоколів ТСР/ІР) в якості основного способу виконання комунікаційних операцій.

Якщо вибрати для подальшого аналізу кластери цього поширеного типу (топологія у вигляді повного графа, пакетний спосіб передачі повідомлень), то трудомісткість операції комунікації між двома процесорними вузлами можна оцінити у відповідності з виразом (модель А)

;

(8.33)

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

З врахуванням наведених зауважень, схема побудови часових оцінок може бути уточнена; в рамках нової розширеної моделі трудомісткість передачі даних між двома процесорами визначається у відповідності з такими виразами (модель В):

(8.34)

де є кількістю пакетів, на яку розбивається повідомлення, що передається, величина визначає максимальний розмір пакета який може бути доставлений в мережу (для операційної системи MS Windows в мережі Fast Ethernet =1500 байт), а є об'єм службових даних в кожному з пакетів, що пересилаються (для протоколу ТСР/ІР, ОС Windows в мережі Fast Ethernet =78 байт). В наведених співвідношеннях константа характеризує апаратну складову латентності і залежить від параметрів використовуваного мережевого обладнання, значення задає тривалість підготовки одного байта даних для передачі по мережі. Як результат, величина латентності

(8.35)

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

.

(8.36)

Окрім латентності, в запропонованих виразах для оцінки трудомісткості комунікаційної операції можна уточнити також правило обчислення тривалості передачі даних

,

(8.37)

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

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

,

(8.38)

це модель С, запропонована Хокні (the Hockney model).

Размещено на Allbest.ru


Подобные документы

  • Вивчення можливостей інтегрованого середовища розробки програм Qt Creator. Ознайомлення з основами паралельних обчислень мовою програмування С++ в цьому середовищі. Переваги та конструкції OpenMP, сортування масиву злиттям. Тестування програми сортування.

    курсовая работа [87,5 K], добавлен 28.10.2015

  • Порівняння характеристик топології мережі передачі даних, таких як: діаметр, зв’язність, ширина бінарного поділу та вартість. Загальний опис механізмів передачі даних – алгоритмів маршрутизації, а також методів передачі даних між процесорами мережі.

    курсовая работа [167,3 K], добавлен 20.06.2015

  • Топологічний аналіз початкового графу. Розробка підходів до розпаралелювання і послідовного рішення задачі – розрахунку потоків повітря у кожній гілці мережевого динамічного об’єкту – вентиляційної мережі. Аналіз ефективності паралельних рішень.

    курсовая работа [743,4 K], добавлен 27.08.2012

  • Технологія OpenMP як найпопулярніший засіб програмування комп'ютерів із загальною пам'яттю. Типи конструкцій OpenMP: функції виконуючого середовища OpenMP, директиви pragma. Аналіз параметрів операційного середовища OpenMP, особливості типів блокувань.

    реферат [397,2 K], добавлен 09.06.2012

  • Побудова блок-схем алгоритмів програм. Створення блок схем алгоритмів за допомогою FCEditor. Експорт блок-схеми в графічний файл. Огляд програмних та апаратних засобів. Мови програмування високого рівня. Цикли та умовний оператор IF з лічильником.

    дипломная работа [1,4 M], добавлен 15.12.2013

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

    курсовая работа [27,7 K], добавлен 03.04.2009

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Коректне використання операторів та конструкцій, побудова ефективних алгоритмів для розв'язку типових задач. Розробка алгоритмів та програми для створення бази даних телефонних номерів. Використання засобів розробки програмного забезпечення мовою Java.

    курсовая работа [1,0 M], добавлен 25.01.2016

  • Проведення експериментів зі стрічковим методом множення матриць, методами Фокса й Кеннона, поняття блокових матричних операцій. Топологія мережі. Результати експерименту за методами Фокса та й Кеннона при різних кількостях загружених процесорів.

    лабораторная работа [838,4 K], добавлен 24.05.2014

  • Мoвa прoгрaмувaння як систeма пoзначень, що служить для точного опису програм або алгоритмів для ЕOM. Вимоги до мов програмування, класифікація за їх особливостям. Загальна характеристика найбільш поширених мов програмування: Сі, Паскаль, Delphi, Бейсік.

    реферат [24,4 K], добавлен 10.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.