Второй Международный научно-практический семинар Высокопроизводительные Параллельные Вычисления на Кластерных Системах
Параллельный алгоритм Параллельный алгоритм
построения остова
многогранного конусамногогранного конусаЗолотых Н.Ю. Земскова Е.Л.
Агафонов Е.А
ННГУ им. Лобачевского, Н.Новгород
2002 г.
Параллельный алгоритм построения остова многогранного конуса
Определения
Многогранный конус: C(A) = {x Fn : Ax ≥ 0},
A Fmxn
Коническая оболочка: Cone{r1,…,rs} = {α1r1+…+ αsrs:
α1≥0,…,αs≥0},
r1, r2, … rs – векторы из Fn r1, r2, … rs - остов конуса, если:
C(A) = Cone{r1,…,rs}
минимальная по включению
Параллельный алгоритм построения остова многогранного конуса
Теорема Минковского
Коническая оболочка
Многогранный конус
Для любого многогранного конуса найдется порождающая его система векторов и, наоборот, коническая оболочка конечной системы векторов является многогранным конусом
Параллельный алгоритм построения остова многогранного конуса
АлгоритмАлгоритмМоцкина-БургераМоцкина-Бургера
Коническая оболочка
Многогранный конус
Алгоритм Моцкина-БургераАлгоритм Моцкина-Бургера
Алгоритм работает одинаково в обе стороны в силу теоремы Вейля:
C(A) = Cone (b1,b2,…bs) C(BT) = Cone (a1T,a2
T,…,atT),
где b1,b2,…bs – система столбцов матрицы B,
a1,a2,…,at - система строк матрицы А
Параллельный алгоритм построения остова многогранного конуса
Шаг алгоритма
Алгоритм итеративный Предварительный шаг
алгоритма: выделение в матрице А ранговой подсистемы и нахождение начального остова алгоритмом Гаусса
Общий шаг алгоритма: добавление нового ограничения к построенному остову
Параллельный алгоритм построения остова многогранного конуса
Параллельный вариант
Главный процессор(0)Добавление новых
вершин
процессор #1
Нахождение ребер и вычисление новых
вершин
процессор #2
Нахождение ребер и вычисление новых
вершин
Процессор #p-1
Нахождение ребер и вычисление новых
вершин
Процессор #p
Нахождение ребер и вычисление новых
вершин
……
На каждом итерационном шаге каждому процессору необходимо знать остов, полученный на предыдущем шаге
Параллельный алгоритм построения остова многогранного конуса
Тестовая задача
Получение условий совместности 3-х индексной транспортной задачи:
lkmjnix
mjnicx
lknibx
lkmjax
ijk
l
kijijk
m
jikijk
n
ijkijk
,1;,1;,1;0
,1;,1
,1;,1
,1;,1
1
1
1
Число неизвестных: mnl
Число уравнений:
mn + ml + nl
Число неравенств:
mnl
Параллельный алгоритм построения остова многогранного конуса
Тестовая задача
Условие совместности задачи {Ax=b, x≥0}, где A Fmxn, x Fn, b Fm
{Ax=b{Ax=b, , xx≥≥0}0}имеетимеет
решениерешение
b b Cone(a Cone(a11,…,a,…,ann))
A=(aA=(a11,…,a,…,ann))
Параллельный алгоритм построения остова многогранного конуса
Результаты
4x3x3:9 равенств, 717 неравенств для
коэффициентов aij, bjk, cki (1995г.)
4x4x3:10 равенств и 4948 неравенств для
коэффициентов aij, bjk, cki
4x4x4:11 равенств и 113740 неравенств для
коэффициентов aij, bjk, cki
Параллельный алгоритм построения остова многогранного конуса
Результаты(4x4x3)
Время работы
P T
1 35 c.2 40 c.3 23 c.4 16 c.5 13 c.6 12 c.7 10 c.8 9 c.
Ускорение
1,00 0,88
1,52
2,19
2,692,92
3,50
3,89
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
1 2 3 4 5 6 7 8 p
S(p)
Эффективность
1,00
0,440,51
0,55 0,540,49 0,50 0,49
0
0,2
0,4
0,6
0,8
1
1,2
1 2 3 4 5 6 7 8 p
E(p)
P – число процессоровT – время работы программы
S(p) – ускорения на P процессорахE(p) – эффективность на P процессорах
Параллельный алгоритм построения остова многогранного конуса
Результаты(4x4x4)
Время работы программы:P=1 – 10ч 43 мин.P=6 – 2ч. 4 мин.
УскорениеУскорение 5 5.25.25Эффективность Эффективность 0,878 0,878
Параллельный алгоритм построения остова многогранного конуса
Контакты
Золотых Н.Ю. (доцент кафедры МЛиВА, ВМК ННГУ) e-mail: [email protected] Web: http://www.uic.nnov.ru/~zny