Распределенная сетевая обработка при решении задач конструкторского проектирования ЭВА

Известия ТРТУ

Тематический выпуск

УДК 681.323

В.М. Глушань, Е.В. Будников Распределенная сетевая обработка при решении задач конструкторского

проектирования ЭВА

1. Введение

Сложность современных вычислительных задач приводит к тому, что их решение даже на мощных ЭВМ является весьма длительным. Особенно это справедливо для конструкторских задач САПР, таких как размещение и трассировка, которые, как известно, являются ОТ полными. Для ускорения решения таких задач ведутся исследования как в области создания более эффективных алгоритмов, так и в области разработки более совершенных аппаратных платформ. Так, для выполнения трассировки были разработаны специализированные аппаратные акселераторы (спецпроцессоры). Кроме того, вычислительная мощность универсальных ЭВМ также повышается, получают распространение симметричные многопроцессорные и массивно-параллельные (т.е. сильносвязанные) вычислительные комплексы.

Основным недостатком подобных аппаратных решений является их недостаточная экономическая эффективность. Это связано с тем, что загрузка отдельной ЭВМ редко достигает 50-60%. Следует отметить, что в конструкторских отделах западных фирм в качестве рабочих мест проектировщика используются Щ8С - системы типа Бип 8рагс§1аИоп или Неиг1еН-Раскаг<1 9000, которые служат как для вычислений, так и для организации диалога с разработчиком. В последнем случае загрузка системы редко превышает 5%. Поэтому естественно использовать оставшиеся ресурсы систем для решения задач с других станций в сети. При этом задание должно иметь возможность выполняться на одной или нескольких сетевых станциях. Такой подход получил название сетевой распределенной обработки.

2. Механизмы распределенной обработки

Вычислительная система, предназначенная для выполнения распределенной обработки, должна отвечать ряду требований. Среди них:

1. наличие достаточного объема оперативной памяти, чтобы постановка на решение фрагмента распределенной задачи не вызвала входа системы в затяжной свопинг;

2. производительность процессора, достаточная для того, для того чтобы загрузка системы при организации диалога с пользователем была невысокой, как отмечалось выше;

3. наличие многозадачной ОС с развитыми сетевыми средствами.

Современные рабочие станции используют различные варианты ОС 1Ж1Х, в

Полной мере отвечающей данным требованиям.

В принципе, возможна организация распределенной обработки с использованием нескольких выделенных ведомых машин. В этом случае требования по производительности существенно снижаются. Если же фрагмент Задания распределяется на невыделенную рабочую станцию, первоочередное значение приобретает проблема обеспечения “прозрачности” выполнения данного Фрагмента с точки зрения локального пользователя.

На каждой машине, готовой для работы в качестве ведомой, должно выполняться специальное приложение - диспетчер, или, в терминах ОС ЦМХ, “демон”, служащий для решения следующих задач:

1. получение запроса о возможности выполнения фрагмента задачи на данной машине и предоставление информации о возможной (допустимой) трудоемкости данного фрагмента. Это требуется для обеспечения сбалансированного распределения загрузки;

2. получение исходных данных к задаче, выполнение задачи и передача результатов ведущей машине.

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

Рассмотрим процесс распределенного решения задачи:

1. Ведущая машина собирает информацию о ведомых машинах и соответствующей допустимой трудоемкости для каждой из них.

2. Ведущая машина производит декомпозицию задачи на основе ее структуры, а также информации, полученной на предыдущем этапе.

3. Ведущая машина распределяет фрагменты задачи по ведомым.

4. Выполнение фрагментов задачи.

5. Сбор информации с ведомых машин.

6. Анализ собранной информации.

7. В зависимости от структуры задачи возврат может осуществляться либо к

3, либо к 1 пункту.

Для упрощения процесса назначения задачи на ведущую машину, на ней должен быть запущен такой же демон, как и на ведомых. В этом случае, в течение решения фрагментов задач на ведомых машинах, головной модуль, запущенный на ведущей машине, может находиться в состоянии ожидания. Это не приведет к простою ведущей машины или к неэффективному использованию ее ресурсов. Особое значение имеет проблема, связанная с тем, что локальный пользователь некоторой ведомой машины может запустить некоторую свою задачу в момент, когда на данную машину уже назначен фрагмент чужой задачи. В этом случае возможна перегрузка ведомой машины (вызванная либо повышенным требованиям к процессору, либо к оперативной памяти). Возможно несколько вариантов выхода из данной проблемы.

1. Приостановка выполнения распределенного фрагмента с возобновлением после того, как нагрузка на процессор будет снижена ниже требуемого значения. Следует рассмотреть возможность сохранения промежуточных результатов выполнения приостановленного фрагмента на некотором накопителе, чтобы обеспечить меньшую занятость ОЗУ удаленной машины и, как следствие, скорейшее освобождение процессорных ресурсов.

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

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

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

3. Алгоритмы и общие требования к ним

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

1.Базовый алгоритм решения задачи.

2.Алгоритм распределения.

Рассмотрим общие требования к ним.

Базовый алгоритм решения задачи в сети представляет собой вариант некоторого алгоритма решения данной задачи на отдельном компьютере, модифицированный с целью максимального уменьшения взаимодействия между машинами, решающими фрагменты данной задачи. Следует особо обратить внимание на затраты, связанные с доступом к общим, совместно модифицируемым данным. Требования к алгоритму распределения существенно зависят как от структуры задачи, так и от свойств ведомых вычислительных машин. Рассмотрим несколько вариантов.

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

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

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

4. Применение распределенных методов в задачах САПР.

Рассмотрим возможность использования распределенной обработки применительно к задачам конструкторского проектирования.

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

Материалы Всероссийской конференции “Интеллектуальные САПР-96”

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

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

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

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

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

УДК 658.512

Л. А. Гладков Алгоритм определения планарности графа

Задача определения планарности графа относится к числу важнейших задач САПР и состоит в нахождении такого представления графа, при котором ребра рассматриваемого графа не пересекаются между собой. Идея описываемого алгоритма определения планарности графов базируется на известном принципе Харари [1]. Согласно этому принципу, граф в планарен в том случае, когда можно выделить к - циклов, таких, что любое ребро графа принадлежит одновременно двум и только двум циклам из выделенного множества. Тогда алгоритм определения планарности графа в заключается в выделении из матрицы всех возможных циклов графа(Вгш) субматрицы(Вг1) такой, что количество строк