Высокопроизводительные парал. вычисления на кластерных системах. Воеводин (2005) (1186026), страница 41
Текст из файла (страница 41)
Их можно представить некоторой схемой, которая без труда реализуется существующими средствами радиоэлектроники. В работе приведены основные принципы построениямозгоподобных ЭВМ параллельного действия. Представлен новыйподход к созданию искусственного интеллекта: интеллект человекарассматривается как некоторое материальное воплощение механизмалогики. Были выполнены работы по алгебраизации логики. Представлена модель логической сети для полных непритяжательных имен прилагательных русского языка, ориентированная на аппаратную реализацию. Проведен анализ производительности реализации модели в кристалл FPGA по сравнению с программной на компьютере последовательного действия.
Выигрыш в производительности вычислений достигается за счет параллельной обработки данных. Программная реализация лишена этого преимущества, поскольку на компьютере Фоннеймановской архитектуры операции в ребрах сети осуществляютсяпоследовательно. Выигрыш в производительности будет тем выше,чем выше параллелизм модели.Литература1. Шабанов-Кушнаренко Ю.П. Теория интеллекта. Харьков: Вищашкола, 1984, 1986, 1987. 440 с.2.
Логическая сеть как технология моделирования естественного языка. Шабанов-Кушнаренко Ю.П., Хаханов В.И., Процай Н.Т. и др. // Информационные технологии – в науку и образование. Харьков, ХНУРЭ, 21–22 марта 2005. C. 30–33.СПОСОБ ОРГАНИЗАЦИИ ВЗАИМОДЕЙСТВИЯКОМПОНЕНТОВ КЛАСТЕРНОЙВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫА.А. ПотаповПензенский государственный университетВведениеПри создании кластерных систем высокой доступности необходимо эффективно решать задачу балансировки вычислительной нагрузки.203Балансировка нагрузки (load balancing) призвана обеспечить равномерную загруженность вычислительных узлов системы подзадачами,обеспечив тем самым максимальную скорость выполнения задачи вцелом.
При этом необходимо учитывать рейтинги производительностиузлов кластера. Подсистема рейтинговой балансировки занимает центральное место в системе управления кластером. Эффективность ееработы определяет эффективность исполнения задачи в целом.Методика распределения нагрузкиЭтап I (выполняется в статике):1. Производится декомпозиция большой задачи на множество мелких подзадач.2.
Выполняется анализ полученного множества на предмет выявления взаимозависимостей по данным.3. Предпринимаются попытки реорганизации параллельных алгоритмов, с целью повышения их эффективности путем избавления отизбыточных взаимозависимостей.4. По результатам анализа (шаг 2) и реорганизации (шаг 3) подзадач из общего множества формируются подмножества подзадач. В каждое подмножество войдут задачи, которые должны исполняться последовательно.Этап II (выполняется в статике):1. Производится ранжирование подзадач путем вычисления трудоемкостей их выполнения. Результаты представляют собой числовыезначения в условных единицах.2. Осуществляется оценка производительности вычислительныхузлов (нахождение рейтингов). Результат представляет собой числовоезначение, которое отражает ресурс узла в тех же условных единицах,что и трудоемкость подзадач.3.
Определяется начальная (статическая) стратегия балансировки,например, round-robin [3].Этап III (выполняется в динамике):1. В систему поступает подзадача. Диспетчер, согласно выбраннойна втором этапе (шаг 3) стратегии, выбирает подходящий узел и передает ему подзадачу на выполнение. Получивший подзадачу узел теряетчасть своего ресурса (уменьшая текущий рейтинг узла) на время выполнения подзадачи.2.
Диспетчер динамически корректирует стратегию выборки в соответствии с изменившимся распределением ресурсов. После выполне204ния подзадачи диспетчер отправляет результаты по месту запроса.3. Момент поступления подзадачи на выполнение и момент завершения ее обработки фиксирует монитор производительности, тем самым, вычисляя реальное время обработки подзадачи и корректируязначение трудоемкости выполнения конкретной задачи для конкретного узла с учетом его текущей загрузки.Таким образом, согласно вышеприведенной методике, на первыхдвух этапах кластер подготавливается к работе, на третьем этапе – работает.
Вышеизложенная методика позволяет с течением времениуточнять значение трудоемкости выполнения каждой подзадачи наконкретном узле. В случае перегрузки кластера, когда все узлы исчерпали свой ресурс, стратегия балансировки может изменяться, например, на least-connection [3]. Кроме того, по мере загрузки узла подзадачами, монитор производительности выполняет перерасчет значенияпроизводительности узла, сверяет его с рассчитанным в статике, и принеобходимости корректирует.Рассмотрим более подробно методы и способы, применяемые вметодике.Этап I, шаг 1,2,3 – декомпозиция крупной задачи на более мелкиевыполняется высокоуровневыми способами распараллеливания (coarsegranularity) [1], такими как:• уровень отдельных заданий (task level);• уровень подпрограмм (procedure level).Реорганизация параллельных алгоритмов выполняется по методикам, изложенным в [2].Этап I, шаг 4 – формирование подмножеств подзадач из основного множества.
Разделение подзадач на подмножества выполняется исходя из двух принципов:• независимости используемых ими данных. То есть, если двеподзадачи используют несвязанные между собой данные, то эти подзадачи попадают в различные подмножества;типа производимых операций. То есть, если две подзадачи выполняют:• операции чтения или добавления над одним и тем же объектом,то они попадают в разные подмножества. Если подзадачи выполняютоперации записи или модификации, или удаления одного и того жеобъекта – они попадают в одно подмножество.Подзадачи, входящие в состав различных не пересекающихся подмножеств, могут выполняться параллельно.
Подзадачи, принадлежащие одному подмножеству (или общей части пересечения с другим205подмножеством), должны выполняться только последовательно. В случае несоблюдения предыдущего требования возможно возникновениеконфликтных ситуаций, когда, например, одна подзадача пытается записать результаты в объект, в то время как выполняется процедура егоудаления.Эффективность выполнения задачи напрямую связана с количеством и мощностью подмножеств.
Если подмножеств много и их мощность мала, то эффективность высока. Примерами крайних случаевявляются две ситуации:1. Когда подмножество одно и в нем присутствуют все подзадачи –в этом случае задача является последовательной и ее решение на кластерной системе будет несколько менее эффективно (из-за накладныхрасходов), как если бы она выполнялась на одном, самом производительном узле кластера.2.
Когда количество подмножеств равно количеству подзадач имощность каждого подмножества, следовательно, равна 1 – в этом случае имеет место идеальное распараллеливание задачи на абсолютнонезависимые ветви, и производительность в этом случае будет определяться реальной производительностью кластера.Этап II, шаг 1 – Ранжирование подзадач выполняется при помощиметодики, основанной на представлении алгоритма вычислительногопроцесса в виде Марковской модели [4]. В результате применения методики каждая подзадача получит числовое значение трудоемкости ееисполнения в условных единицах.Этап II, шаг 2 – Оценка производительности вычислительных узлов производится одним из стандартных контрольно-оценочных тестов: Linpack, Perfect, Spec_89, Spec_92, Spec_SDM, Spec_SFS, AIM.Данные тесты не привязаны к системе команд определенного процессора, поэтому позволяют проводить оценку производительности любойЭВМ классического типа, кроме гетерогенных вычислительных систем.
В результате каждый узел получает эквивалент его производительности в тех же условных единицах, что и подзадачи.Этап II, шаг 3 – Выбор начальной стратегии балансировки осуществляется из числа общеизвестных статических стратегий: round-robin,least-connection [1] и т.д.Этап III, шаг 1,2,3 – Работу в динамике рассмотрим на примере,конкретизируя структуру балансировщика следующим образом: подсистема балансировки состоит из двух компонентов: диспетчера задачи монитора производительности.206Монитор производительности обладает распределенной архитектурой и представляет собой систему агентов, каждый из которых выполняется на отдельном узле кластера.
Каждый агент выполняет двеосновные функции:а) на этапе включения узла в состав кластера формирует оценкупроизводительности узла в условных единицах и сохраняет это значение в системные таблицы диспетчера;б) в процессе функционирования узла фиксирует время, фактически затраченное на выполнение подзадачи и формирует оценку степени загрузки узла с сохранением в системные таблицы диспетчера.Таким образом, главная задача монитора производительности –формирование оценок производительности узла и сохранение их в системные таблицы диспетчера для анализа диспетчером задач.Диспетчер задач также как и агенты монитора производительности располагается на каждом узле кластера по экземпляру. Однако вотличие от агентов, активный экземпляр диспетчера находится лишьна одном узле, все остальные экземпляры пребывают в состоянии ожидания и активизируются только в случае выхода из строя текущегоактивного экземпляра.
Таким образом, в каждый момент временифункционирования системы, только один диспетчер задач выполняеткоординацию работы узлов кластера. Диспетчер задач состоит из нескольких структурных частей: буфер промежуточного хранения, ядродиспетчера (выполняет основные функции) и системные таблицы диспетчера (хранят данные о работоспособности узлов кластера, например, оценки). Сервер удаленного доступа выполняет прослушиваниепорта доступа. При появлении запроса сервер принимает его и устанавливает в очередь запросов, отправляя сообщение диспетчеру.
Диспетчер, получив сообщение сервера о поступлении нового запроса,просматривает очередь запросов и извлекает поступившую заявку, помещая ее в буфер временного хранения. Затем он обращается к своимсистемным таблицам, анализирует текущие оценки производительности, сформированные монитором производительности. Далее,согласно действующей стратегии балансировки, диспетчер выбираетнаиболее оптимальный узел и передает на него поступившую заявку избуфера временного хранения. Поступившая на узел заявка выполняется под контролем агента монитора производительности.ЗаключениеВ настоящее время на базе вычислительного центра ПГУ осуществляется практическая реализация подсистемы балансировки и монито207ринга производительности.