Дипломная работа: Распараллеливание многоблочных задач для SMP-кластера


4.3 Алгоритмы EVAH

В 2001-ом году на международной конференции по параллельной обработке, организованной IEEE (Институтом Инженеров по Электротехнике и Радиоэлектронике) Джомери и Рупак Бизвас предложили ряд новых алгоритмов для решения задачи балансировки в приложениях гидрогазодинамики [2]. Эти алгоритмы описаны в статье “Task Assignment Heuristics for Distributed CFD Applications”. Этой статьи нет в свободном доступе, но идею алгоритма можно взять в другой статье этих же самых авторов.

В рамках этой работы будем использовать один алгоритм из этой серии, который называется Largest Task First with Minimum Finish Time and Available Communication Costs” (LTF_MFT_ACC, в первую очередь большие задачи с наименьшим временем выполнения и известными затратами на коммуникации). Позже EVAH был интегрирован другими разработчиками в реальных приложениях типа OVERFLOW-D (моделирование подвижных объектов в аэродинамике) и показал весьма неплохой результат.

Ядро алгоритма можно описать следующим образом:

Пусть:

zi – задача i

Xi – время выполнения zi

R(zi ) – совокупность всех задач, от которых zi получает данных

D(zi ) – совокупность всех задач, которые получают данные от задачи zi

C – время коммуникации

T(pi ) – суммарное время выполнения задач на процессоре pi

1: Отсортируем список задач по весу (времени выполнения) в убывающем порядке

2: В начале время выполнения задач на каждом процессоре = 0 (процессоры свободные)

3: Для каждой отсортированной задачи zi выполнять:

3.1: Распределить задачу на процессор pj , у которого загрузка T(pj ) наименьшая. Пересчитать T(pj ) = T(pj ) + Xi

3.2: Для каждой задачи zr в R(zi ), назначенной на процессор pk != pj выполнить

T(pj ) = T(pj ) + Cir

Если задача zr (которая уже распределена на другой процессор) получает данные от задачи zi то надо добавить в T(pj ) время коммуникации между zi и zr */

3.3: Для каждой задачи zd в D(zi ), назначенной на процессор pm != pj выполнить

T(pm ) = T(pm ) + Cdi

Если задача zi получает данные от zd (которая уже распределена на процессор pm ) то надо добавить в T(pm ) время коммуникации */

4: Конец цикла

Для иллюстрации работы алгоритма рассмотрим следующий пример (рисунок 3).

Имеем четыре пересекающиеся сетки (блоки) zi (i=0..3). Надо распределить блоки по двум процессорам p0 и p1 так, чтобы минимизировать время выполнения.


Рисунок 3. Иллюстрация работы алгоритма EVAH

Шаг 1. Четыре блока отсортированы в убывающем порядке по времени выполнения (Xi ), получаем: z3 , z2 , z0 , z1

Шаг 2. В начале суммарное время выполнения на процессорах равно 0, T(p0 ) = T(p1 ) = 0

К-во Просмотров: 249
Бесплатно скачать Дипломная работа: Распараллеливание многоблочных задач для SMP-кластера