Научная статья на тему 'О некоторых концептуальных вопросах разработки параллельных структур вычислительных задач кластерных вычислительных систем'

О некоторых концептуальных вопросах разработки параллельных структур вычислительных задач кластерных вычислительных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
348
70
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА / АРХИТЕКТУРА / КЛАСТЕР / РАСПАРАЛЛЕЛИВАНИЕ / ТЕХНИЧЕСКАЯ / ЭКСПЛУАТАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ледянкин И. А., Легков К. Е.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ледянкин И. А., Легков К. Е.

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

Текст научной работы на тему «О некоторых концептуальных вопросах разработки параллельных структур вычислительных задач кластерных вычислительных систем»

О НЕКОТОРЫХ КОНЦЕПТУАЛЬНЫХ ВОПРОСАХ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ СТРУКТУР ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

Ледянкин И.А., к.т.н., Военно-космическая академия имени А.Ф. Можайского, [email protected]

Легков К.Е., к.т.н., Военно-космическая академия имени А.Ф. Можайского, [email protected]

Ключевые слова:

вычислительная система, архитектура, кластер, распараллеливание, техническая эксплуатация.

АННОТАЦИЯ

В настоящее время наибольший интерес в рамках повышения оперативности решения вычислительных задач представляет процесс развития методов и способов применения кластерных вычислительных систем.

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

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

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

В настоящее время для оценки времени реализации алгоритма на кластерной вычислительной системе (ВС), алгоритм представляют в виде последовательно выполняемых ансамблей операций, причём в каждом ансамбле все операции не должны быть связаны друг с другом. Если архитектура параллельной системы позволяет реа-лизовывать одновременно все операции каждого ансамбля, то без учёта времени на передачи данных, время выполнения алгоритма будет пропорционально числу ансамблей. Число ансамблей является высотой алгоритма. Алгоритмы, в которых высота меньше общего числа операций стали называть параллельными, а их представление через последовательность ансамблей из независимых операций - параллельной формой (рис. 1).

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

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

Рис. 1. Последовательность ансамблей независимых операций алгоритма

Очевидно, что в зависимости от структуры связей между операциями один и тот же алгоритм может быть представлен различными способами в виде совокупности ансамблей. В частности, обычная последовательная реализация означает, что в каждом ансамбле содержится только одна операция. Для большинства алгоритмов, даже таких представлений может существовать очень много. Ясно, что для каждой задачи особый интерес представляет нахождение алгоритмов минимальной высоты. Высота алгоритма является важной характеристикой, так как показывает потенциальную возможность быстрого решения задачи на ВС параллельной архитектуры [1].

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

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

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

Для решения отдельных вопросов, выявленного выше противоречия, автором предлагается на первом этапе

Рис. 2. Граф информационных и операционных связей между операциями алгоритма

Анализируя запись нетрудно убедиться в том, что в вершину с координатами ¿, ), к для к>1 будет передаваться результат выполнения операции, соответствующий вершине с координатами {,), к-1. В результате получаем граф, вершины которого представляют собой операции алгоритма, а его ребра - переменные, передаваемые между операциями. Данный граф представляется в виде матрицы, элементы которой принимают два состояния -«0» и «1» (рис. 3).

Рис. 3. Пример выделения операционных связей и создания на их основе матрицы взаимосвязей между операциями

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

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

На основе полученной матрицы производится вычисление метрик «близости». Метрика «близости» вычисляется по формуле [2]

V' + V'

(1)

где Га , VI — количество общих аргументов используемых операциями а и Ь;

HiS

RESEARCH

Уа , VЬ — количество аргументов используемых или получаемых в результате операций а, Ь - соответственно.

На основе метрик «близости» для каждого элемента создается матрица, в данной матрице значение элемента Л(г, )) < > 0 означает вес связности двух операций I и ).

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

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

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

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

Особенно актуальным данный вопрос становится при реализации распараллеленного алгоритма с помощью кластера. В результате у нас будет создан кластер, в котором будет находиться кластер пары операций {, ), а также связанные с ним опе-рации «поставщики» и «потребители» аргументов некоторые из которых возможно взаимосвязаны друг с другом.

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

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

Алгоритм формирования параллельных структур информационного ядра вычислительной задачи, представлена на рисунке 4.

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

Рис. 4. Алгоритм формирования параллельных структур информационного ядра вычислительной задачи

временному выполнению на различных микропроцессорах с минимальными затратами на обмен данными между собой.

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

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

На основе рассмотренного выше, следуют выводы [3]:

— существуют алгоритмы, которые распараллелить невозможно;

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

— при организации распараллеливания алгоритма особое внимание необходимо уделять обмену данными между различными ветвями параллельного алгоритма.

Далее, более детально рассмотрим блоки представленного выше алгоритма.

Выделение информационных и операционных

связей алгоритма подлежащегораспараллеливанию.

Пусть р есть количество процессоров, используемых для выполнения алгоритма. Тогда для параллельного выполнения вычислений необходимо задать множество

Нр = {(г , р , tг-) : г е V} , в котором для каждой операции

¿еУ указывается номер используемого для выполнения операции процессора Р( и время начала выполнения операции ^ . Для того, чтобы расписание было реализуемым, необходимо выполнение следующих требований при задании множества Нр :

V(/, у ) е V : t 1 = t^ Р1 Ф Ру, т.е. один и тот же процессор не должен назначаться разным операциям в один и тот же момент времени;

, У) е Я tу > tг +1 , т.е. к назначаемому моменту выполнения операции все необходимые данные уже должны быть вычислены.

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

Таким образом, зависимость между операциями обнаруживается если аргумент на выходе одной операции используется в качестве входного аргумента другой операции (наиболее часто этой операцией является операция более низкого яруса). Наиболее удобно и просто для математического описания взаимосвязи между операциями использовать матрицы, элементы которых принимают два состояния - «0» и «1». В этом случае элемент матрицы А[1, Л равный 1 означает, что ¿-я и j-я операции алгоритма связаны между собой. В результате, создается матрица взаимосвязей между операциями, симметричная относительно главной диагонали.

В приведенном на рисунке 2 примере, в результате выполнения операции 1, переменным присваиваются какие-либо значения, без которых их использование в операциях более низкого яруса было бы невозможно, в тоже время для выполнения операции 6 нет необходимости дожидаться выполнения операции 2, 4 и 5, следовательно, её вычисление можно произвести одновременно с выполнением данных операций (при наличии соответствующих аппаратных средств). Таким образом, выделение информационных и операционных связей является первоочередной задачей при реализации алгоритма выделения параллельных ветвей в исследуемом алгоритме [3].

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

правилу изложенному выше, следует учитывать только «внешние» входные и выходные данные. В результате, по-сле выполнения операций данного блока на выходе получается готовая матрица, отражающая операционные и информационные связи исходного алгоритма. Главным предназначением полученной матрицы является её использование для расчета значений связностей каждой операции, входящей в исходный алгоритм с оставшимися операциями данного алгоритма. Таким образом, выходной информацией данного этапа является набор данных, необходимый для дальнейшего выполнения приведенной схемы алгоритма распараллеливания. Алгоритм выделения информационных и операционных связей представлен на рисунке 5.

Рис. 5. Алгоритм выделения информационных и операционных связей

При анализе данного алгоритма необходимо в первую очередь обратить внимание на следующие факторы: 1. На вход может поступать такое количество операций, которое потребует выполнения на начальном этапе выполнения не одной, а нескольких операций. Приме-ром может являться быстрое преобразование Фурье. В таком случае необходимо рассматривать в 3 блоке основного алгоритма столько элементов с max связностью, сколько потоков данных (f1, ..., fn) поступает на вход ВС (рис. 6).

Рис. 6. Граф быстрого преобразования Фурье

2. Для более наглядного понимания процесса отслеживания обращения к той или иной переменной необходимо представить модель распараллеливания алгоритма в виде графа, расположенного в трехмерном пространстве с координатами I,), к.

В данном случае операции будут помещены во все целочисленные узлы решетки. Анализируя запись нетрудно убедиться в том, что в вершину с координатами I,), к для к > 1 будет передаваться результат выполнения операции, соответствующий вершине с координатами I,), к-1. В результате получаем граф, вершины которого пред-ставляют собой операции алгоритма, а его ребра -переменные, передаваемые между операциями.

На следующем этапе осуществляется вычисление метрик «близости» операций алгоритма на основе матрицы полученной в блоке выделения информационных и операционных связей. «Близость» по данным означает использование общих переменных, «близость» по управлению может определяться как принадлежность к одному линейному участку спецификации или вероятность совместного выполнения операций при наличии условных ветвлений [4].

Алгоритм вычисления метрики «близости» операций по данным представлен на рисунке 7.

Вычисление метрики «Близости» по данным осуществляется по формуле

Pd (a, b) =

К + Vb

Va + Vb

где Уа , V Ь — число переменных, участвующих в выполнении операций а, Ь соответственно, V' , V — число общих переменных для операций а, Ь.

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

Рис.7. Алгоритм вычисления метрики «близости»

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

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

Выделение максимальных значений

связности операций алгоритма

Выделение максимальных значений связности будем производить на основе матрицы метрик «близости» полученной в предыдущем блоке алгоритма.

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

Сортировка является одной из типовых проблем обработки данных, и обычно понимается как задача размещения элементов неупорядоченного набора значений S = {a^ a2an} в порядке монотонного возрастания или убывания

S » S' = {(a',a',..., ci'n) : a' < a' < ... < ci'n} (здесь и далее все пояснения для краткости будут даваться только на примере упорядочивания данных по возрастанию).

Вычислительная трудоемкость процедуры упорядочивания является достаточно высокой. Так, для ряда известных простых методов (пузырьковая сортировка, сорти-ровка включением и др.) количество необходимых операций определяется квадратичной зависимостью от

числа упорядочиваемых данных T1 ~ n2.

Для более эффективных алгоритмов (сортировка слиянием, сортировка Шелла, быстрая сортировка) трудоемкость определяется величиной T ~ n log 2 n . Данное выражение дает также нижнюю оценку необходимого количества операций для упорядочивания набора из n значений. Алгоритмы с меньшей трудоемкостью могут быть получены только для частных вариантов задачи.

Ускорение сортировки может быть обеспечено при использовании нескольких (p, p>1) процессоров. Исходный упорядочиваемый набор в этом случае разделяется между процессорами. В ходе сортировки данные пересылаются между процессорами и сравниваются между собой. Результирующий набор, как правило, также разделен между процессорами. При этом для систематизации такого разделения для процессоров вводится та или иная система последовательной нумерации и обычно требуется, чтобы при завершении сортировки значения, располагаемые на процессорах с меньшими номерами, не превышали значений процессоров с большими номерами. В конечном итоге мы получаем операции с наибольшими значениями метрик «близости». Именно они и будут помещены в кластера.

Определение операций соседей

с наибольшим значением метрики.

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

Таким образом, назначением данного участка алгоритма является выявление всех операций, подлежащих

распараллеливанию, использующих общие аргументы с двумя операциями ¿, ). Приведенные здесь действия имеют большое значение в организации ветвей алгоритма. Объединение аргументов в одной функциональной части алгоритма, позволяет избежать больших затрат в потере времени при пересылке аргументов являющихся результатом выполнения одной операции, к операции для вы-полнения которой необходим данный аргумент. Особенно актуальным, данный вопрос является при реализации распараллеленного алгоритма с помощью кластера. В данном случае, затраты во времени выполнения будут столь ощутимыми, что могут привести к более длительному решению задачи, чем на обыкновенной однопроцессорной ЭВМ. В результате будет создан кластер, в котором будет находиться кластер пара операций ¿, ), а также связанные с ней операции «поставщики» и «потребители» аргументов, некоторые из которых возможно, окажутся, взаимосвязаны друг с другом. Алгоритм вычисления метрик соседей в рассматриваемом случае аналогичен алгоритму вычисления метрик «близости» [5].

Объединение в кластер операции с наибольшим

значением метрики и числом её соседей.

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

Рис. 8. Структурная схема кластера

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

HiS

RESEARCH

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

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

Выполнение распараллеленного алгоритма на вычислителе.

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

имеет Ы2 процессоров. Тогда на одном из этапов можно

дт2

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

Принятие решения о необходимости дальнейшего распараллеливания алгоритма.

В результате выполнения распараллеленного алгоритма на вычислителе определяется:

время, затраченное на его выполнение; использование доступных ресурсов; — время затраченное на передачу данных. Время выполнения параллельного алгоритма определяется максимальным значением времени, используемым в расписании [6]

Тр (G, H p) = max(tt +1)

i=V

(2)

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

Tp (G ) = min T(G, H p).

H

(3)

Уменьшение времени выполнения может быть обеспечено путем подбора наилучшей вычислительной схемы

Tp = minTp(G )

G

(4)

Оценки Тр(С, Нр), Тр(О) и Тр могут быть использованы в качестве показателей времени выполнения параллельного алгоритма.

Важно отметить, что если при определении оценки Т1 ограничиться рассмотрением только одного выбранного алгоритма решения задачи

T = minT1(G)

G

(5)

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

Оценка эффективности и ускорения полученного алгоритма.

Теоретические положения, характеризующие свойства оценок времени выполнения параллельного алгоритма приведены ниже:

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

тио)=^с). (6)

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

T„(G)= log2n

(7)

где п — это количество вершин ввода в схеме алгоритма.

При уменьшении числа используемых процессоров время выполнения алгоритма увеличивается пропорционально величине уменьшения количества процессоров, т.е.

Уд = ср, с > 0 => Тр < сТч (8)

Для любого количества используемых процессоров справедлива следующая верхняя оценка для времени выполнения параллельного алгоритма

V„ => Tp < TTO + Ti / p

(9)

Времени выполнения алгоритма, сопоставимым с минимально возможным временем Т„, можно достичь при количестве процессоров порядка р ~ Т1 /Т„, а именно

р > Т1 /Т„ => Тр_ < 2ТТО (10)

При меньшем количестве процессоров время выполнения алгоритма не может превышать более чем в 2 раза

наилучшее время вычислении при имеющемся числе процессоров, т.е.

p < VT^^ T < Tp < 2T P P

(11)

Ускорение, получаемое при использовании параллельного алгоритма для р процессоров, по сравнению с последовательным вариантом выполнения вычислений определяется как отношение времени решения задач на скалярной ЭВМ к времени выполнения параллельного алгоритма,

Бр(и) = ВД/ГрСп) (12)

Эффективность пользования параллельным алгоритмом процессоров при решении задачи определяется соотношением

Ep(n) = Ti(n)/ pTp(n) = S„(n)/p

(13)

Значение эффективности пользования параллельным алгоритмом процессоров при решении вычислительной задачи определяет среднюю долю времени выполнения алгоритма, в течение которой процессоры реально используются для её решения [7].

Как следует из приведенных соотношений, в наилучшем случае Бр(и)=р и Ер(п) = 1.

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

Таким образом, для разработки параллельных алгоритмов существующих и перспективных кластерных вычислительных систем необходимо выполнить следующие практические:

— при выборе вычислительной схемы алгоритма должен использоваться граф с минимально возможным диаметром;

— для параллельного выполнения целесообразное количество процессоров определяется величиной р=Т1/Тоа ;

— время выполнения параллельного алгоритма ограничивается сверху величинами, приведенными в выражениях (9), (10).

Время передачи данных между процессорами определяет коммуникационную составляющую (communication latency) длительности выполнения параллельного алгоритма в многопроцессорной вычислительной системе.

Основной набор параметров, описывающих время передачи данных, состоит из следующего ряда величин:

— время начальной подготовки (tH) характеризует длительность подготовки сообщения для передачи, поиска маршрута в сети и т.п.;

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

— время передачи одного слова данных по одному каналу передачи данных (tK); длительность подобной передачи определяется полосой пропускания коммуникационных каналов в сети.

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

Литература

1. Бусленко Н.П. Моделирование сложных систем. М.: Наука. 1978.- 353 с.

2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: «БХВ-Петербург». 2004.- 400 с.

3. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем. Нижний Новгород.: Изд-во НГУ. 2003. - 154 с.

4. Топорков В.В Модели распределенных вычислений. М.: ФИЗМАТЛИТ. 2004. - 320 с.

5. Феррари Д. Оценка производительности вычислительных систем. М.: Машиностроение. 1989. - 248 с.

6. Хорошевский В.Г. Архитектура вычислительных систем. М.: Изд-во МГТУ им. Н.Э. Баумана. 2008. - 520 с.

7. Шеннон Р. Имитационное моделирование систем - искусство и наука. М.: Мир, 1978. - 318 с.

ABOUT SOME CONCEPTUAL QUESTIONS OF DEVELOPMENT PARALLEL STRUCTURES OF COMPUTING TASKS CLUSTER COMPUTING SYSTEMS

Ledyankin I., Ph.D, Military Space Academy, [email protected]

Legkov K., Ph.D, Military Space Academy, [email protected]

Abstract

Now the greatest interest within increase of efficiency of the solution of computing tasks represents development of methods and ways of use of cluster computing systems. Effective use of cluster computing systems is impossible without use of the corresponding algorithms capable paralel proces comput -ing tasks with a view of effective distribution and use of available resources of data of systems.

Development of the new it is high - parallel algorithms instead of existing linear - process perspective from the concept of the unlimited overlapping, allowing to create highly effective algorithms in the theoretical relation, involving with the abstraktnost of mathematicians.

The concept of unlimited overlapping ideal systems also assumes that the parallel computing system on which the computing task is carried out, has infinitely a lot of in parallel working processors, all of them work syn-chronously under the general management and carry out any operation precisely and for the same time, the system has infinitely big memory, all exchanges of information between processors and memory, and also between processors are carried out instantly and without the conflicts.

However realization this the concept is caused by need of creation of expensive computing systems with huge number of spe-

cialized processors and instability of work of computing algorithms, in connection with difficult communication structure of interaction of their parallel branches.

For this reason, today, only reliable source of creation of parallel programs is suitable restructuring of the consecutive programs checked by time and mathematical descriptions. The choice of these forms of records speaks that only they allow to describe algorithms more or less precisely. Thereof, the main emphasis becomes on allocation of internal overlapping in lin -ear algorithms.

For the solution of questions of the parallel structures of computing tasks of cluster computing systems connected with creation in this article the analysis of the directions and features development of parallel algorithms of existing and perspective cluster computing systems is carried out, the method of forma -tion of parallel structures of the information count of algorithm of a computing task is described, the algorithm of allocation of parallel structures in the information count of a computing task is developed.

Keywords: computing system, architecture, cluster, parallel distribution, technical operation.

References

1. Buslenko N.P. Modeling of difficult systems. M.: Science. 1978. - 353 with.

2. Voyevodin V.V., Voyevodin Vl.V. Parallel calculations. SPb.: "BHV-St. Petersburg". 2004. - 400 pages.

3. Gergel V.P., Strongin R.G. Bases of parallel calculations for the multiprocessor com-puting systems. Nizhny Novgorod.: Publishing house of NSU. 2003. - 154 pages.

4. Toporkov V.V. Model of the distributed calculations. M.: FIZMATLIT. 2004. - 320 pages.

5. Ferrari D. Assessment of productivity of computing systems. M.: Mechanical engi-neering. 1989. - 248 pages.

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