Читайте также:
|
|
Оскільки зміна значення процесуального елемента локального блоку даних процесу вимагає наявності елементів в області перекриття, кожен процес має бути готовий надіслати копію граничних елементів свого локального блоку даних. Аналогічно, кожен процес має бути в змозі прийняти копії елементів від сусідніх процесів в свою область перекриття.
На наступному рисунку показані два процеси A і B. Процесс A виконує зміну значення елемента (зазначеного стрілками), який знаходиться далеко від кордону і, таким чином, значення елементів області перекриття для обчислення не використовуються. Процес B виконує обробку елемента, для зміни значення якого потрібно значення елементів з області перекриття з процесу A. Процес A повинен виконати граничний обмін з процесом B до того моменту, коли процесу B знадобиться звернутися до елементів в області перекриття.
Рисунок 10.9 – Процеси граничного обміну
Слід зазначити, що чим ширше виявляються області перекриття, тим менш ефективним стає розпаралелювання програм методом регулярної декомпозиції, оскільки процес граничного обміну буде займати все більш тривалий проміжок часу. Проте, це залежить від співвідношення часів сторінкового обміну і власне рахунку однієї ітерації. Якщо процес ітерації досить тривалий, то граничний обмін навіть при максимально великих областях перекриття може слабо гальмувати обчислення.
Як вже коротко було згадано, часто буває необхідно для обчислення нового значення елемента даних організувати в одному з процесів доступ до даних, отриманих в результаті роботи іншого процесу.
Коли значення якогось елементу даних змінюється, нове значення цього елементу може залежати як від старого значення, так і від старих значень деякої кількості сусідніх елементів, частина з яких може знаходиться в локальному блоці даних іншого процесу. У цьому випадку копії таких елементів повинні бути передані в процес з інших процесів. З іншого боку, процес повинен бути готовий до передачі результатів своєї роботи процесам, яким ці дані можуть знадобиться для проведення наступної ітерації.
Таким чином для процесів можна запропонувати наступний алгоритм виконання ітерацій:
1) Надсилаємо власні дані процесам, яким вони можуть знадобиться для проведення наступної ітерації.
2) Приймаємо дані від сусідніх процесів для заповнення власної області перекриття новими значеннями.
3) Виконуємо обробку даних.
Процес здійснення та прийому даних від інших процесів називається "граничний обмін".
Дата добавления: 2015-01-05; просмотров: 122 | Поможем написать вашу работу | Нарушение авторских прав |