Научная статья на тему 'Bnbtest - реализация методов ветвей и границ на платформе BOINC'

Bnbtest - реализация методов ветвей и границ на платформе BOINC Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
57
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
BOINC / РАЗНОРОДНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ РЕСУРСЫ / ДОБРОВОЛЬНЫЕ РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / DESKTOP GRID / BNBTEST@HOME

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тянь Бо

В статье рассматриваются проект BNBTest@HOME, исследующийся реализация метода ветвей и границ (МВГ) в BOINC системах на примере задачи о булевом ранце с одним ограничением.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тянь Бо

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Bnbtest - реализация методов ветвей и границ на платформе BOINC»

Тянь Бо

Факультет вычислительной математики и кибернетики МГУ имени М. В. Ломоносова,

[email protected]

BNBTEST — реализация методов ветвей и границ на

платформе BOINC

КЛЮЧЕВЫЕ СЛОВА:

BOINC; Разнородные вычислительные ресурсы; добровольные распределенные вычисления; Desktop Grid; BNBTEST@HOME.

АННОТАЦИЯ:

В статье рассматриваются проект BNBTest@HOME, исследующийся реализация метода ветвей и границ (МВГ) в BOINC системах на примере задачи о булевом ранце с одним ограничением.

Задачи комбинаторной оптимизации возникают во многих областях применения вычислительных методов, в частности, таких как искусственный интеллект, исследование операций и т. д. Метод ветвей и границ — общий алгоритмический метод для нахождения оптимальных решений различных задач оптимизации, особенно дискретной и комбинаторной оптимизации. Для задач большой размерности это требует значительных и, в известной степени, неоправданных с практической точки зрения затрат времени. Применение параллельных или распределенных вычислений в задачах глобальной оптимизации дает возможность получить оптимальный вариант за приемлемое время.

Распараллеливания метода ветвей и границ для различных параллельных систем исследовалась многими авторами. Но эти методы полезны только для тесно связанных систем или систем с общей памятью. Крупномасштабные добровольные гриды еще не были рассмотрены в качестве целевой платформу для метода ветвей и границ. Наш подход к проектированию и реализации программ позволяет решить эту проблему.

Наиболее популярная открытая программная платформа для организации добровольных вычислений - это BOINC (Berkeley Open Infrastructure for Network Computing). Она изначально разрабатывалась для проекта SETI@home [1] в Berkeley Spaces Sciences Laboratory (США). С 2002 года платформа BOINC [2] была сделана открытой, и c 2004 года на ее основе стали создаваться другие проекты. В данной работе исследуется реализация метода ветвей и границ (МВГ) в BOINC системах на примере задачи о булевом ранце с одним ограничением.

Проект BNBTest@HOME разделяет вычисление метода ветвей и границ на несколько меньших подзадач, обрабатываются на клиентской стороне. Результаты, полученные клиентами, объединили в одно решение

на стороне сервера.

Мы используем поиск в ширину на стороне сервера, для ветвления каждый раз берется задача, находящаяся на слое с минимальным номером. Эта стратегия порождает подзадачи, которые распределены более равномерно по сравнению с другими стратегиями поиска. На стороне клиента используется поиск в глубину. Требования к объему памяти при поиске в глубину существенно меньше, чем при поиске в ширину. Такая стратегия обеспечивает повышение эффективности использования ресурсов в вычислительных волонтеров.

После того, как сервера генерирует определенное количество подзадач, рассматриваются две возможные стратегии. Обе стратегии создают расчетные блоки (ШогкОпк, Ш0), которые состоят из равного количества подзадач. В первой «плотной» стратегии, мастер-сервер подбирает непрерывно подзадачи из дерева ветвлений и помещает их в Ш0 (Рис. 1).

Х,,= I ХЛ=0

О УУогкшн! 2

Рис. 1 Плотная стратегия

Чтобы решить эту проблему мы предлагаем «разреженную» стратегии (Рис. 2). В рамках этой стратегии сервер помещает в расчетный блок подзадачи, соответствующие листовым узлам дерева с некоторым

шагом.

Рис. 2 Разреженная стратегия

Чтобы оценить сбалансированность распределение нагрузки между расчетными блоками и сравнить обе стратегии, мы используем «кривую

Лоренца». Кривая Лоренца — это графическое изображение функции распределения. В прямоугольной системе координат кривая Лоренца является выпуклой вниз и проходит под диагональю единичного квадрата, расположенного в 1-й координатной четверти. Равномерное распределение соответствует прямому отрезку прямой.

Для проверки предложенных стратегий, мы разработали собственную реализацию Метода ветвей и границдля задачи о ранце [3]. Мы случайным образом сгенерировали пример с 800 предметов в рюкзаке, которые были разбиты на 200 подзадач в результате выполнения некоторого числа итераций поиска в ширину. Затем мы построили 20 Ши с помощью исследуемых стратегий. Соответствующие кривые Лоренца изображены на рис. 3. Очевидно, что разреженная стратегия дает более равномерное распределение объема вычислений по расчетным блокам.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0 .3 0.4 0 .5 0.6 0.7 0.8 0.9 1

(a) Плотная стратегия (b) Разреженная стратегия

Рис. 3. Кривая Лоренца для двух стратегий распределения

Для сравнения обеих стратегий распределения работы были проведены численные эксперименты. Использовались три компьютера, обладающие суммарно с 10-ю процессорными ядрами качестве волонтеров. Полное (суммарное) время выполнения всех расчетных блоков составило 16902.693 секунды. Время выполнения распределенного приложения составило 3944.558 секунд для Плотной стратегии и 3703.242 секунды для Разреженной.

В будущем мы планируем попробовать различные стратегии, и изучение их влияния на эффективность алгоритма.

Литература

1. David P. Anderson, Jeff Cobb, Eric Korpela, Matt Lebofsky, and Dan Werthimer, SETI@home: an experiment in public-resource computing, Commun. ACM45(11):56--61 (2002)

2. BOINC: A System for Public-Resource Computing and Storage. David P. Anderson. 5th IEEE/ACM International Workshop on Grid Computing. November 8, 2004, Pittsburgh, USA.

3. David Pisinger, Where are the hard knapsack problems? Computers & Operations Research, Volume 32, Issue 9, September 2005, Pages 2271-2284.

i Надоели баннеры? Вы всегда можете отключить рекламу.