glava3 4 (Лобусов Е.С. Теоретические основы параллельных вычислений), страница 3
Описание файла
Файл "glava3+4" внутри архива находится в следующих папках: Лобусов Е.С. Теоретические основы параллельных вычислений, Теоретические основы. Документ из архива "Лобусов Е.С. Теоретические основы параллельных вычислений", который расположен в категории "". Всё это находится в предмете "параллельное программирование" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "параллельное программирование" в общих файлах.
Онлайн просмотр документа "glava3 4"
Текст 3 страницы из документа "glava3 4"
где - некоторый выбираемый скаляр.
Более детальный анализ показывает, что многие элементы таблицы П равны между собой.
Этот факт следует учитывать при разработке или выборе решения. Вполне очевидно, что введение переменных z существенно увеличивает размерность задачи.
Как общее свойство рассмотренного метода нахождения распределения являются: 1) большие временные затраты, существенно увеличивающиеся с размерностью и 2) неоднородность переменных задачи: бинарные, целочисленные и вещественные.
В силу отмеченных свойств важным является модификация существующих или разработка новых методов.
3.1.1.2 Некоторые общие замечания по распределению.
Вполне очевидно, что использование показателя функционирования, зависящего только от вычислительных загрузок wlj упрощает и ускоряет работу метода решения.
Если соотношение (2) выполняется при заданных исходных данных - разбиения алгоритма на компоненты и топологии сети - то это самый благоприятный случай. В тех же случаях, когда соотношение (2) не удовлетворяется, то следует изменять исходные данные. Это изменение достигается эвристическими подходами. Ясно, что после получение решения следует проверить условие (2).
Другой момент связан с тем, что эффективность распределения , оцениваемая показателем качества (21), существенно зависит от степени равномерности величин вычислительных загрузок компонент алгоритма обработки. Так для примера на рис.2.15 компонента F2(x) по своей вычислительной загрузке значительно превышает все другие компоненты (низкая степень равномерности).
Н
а рис.3.3а показано распределение вычислительных загрузок для вышеназванного примера. Как следствие, распараллеливание алгоритма не приводит к значительному уменьшению показателя качества. При двух- и трех- (и т.д.) процессорной сети улучшение функционирования алгоритма не происходит.
В то же самое время отчетливо прослеживается тенденция: чем больше число компонент алгоритма и чем меньше величины загрузок для одного и того же алгоритма обработки, тем более эффективные решения по распределению могут быть получены. На том же рисунке 3.3б показано другое распределение загрузок, когда введение дополнительной переменной состояния загрузка F2(x) оказалась разделенной на две части. Такое разделение привело к повышению степени равномерности и улучшению показателю качества при использовании 3-х процессорной сети.
Укажем, что сделанные замечания носят неформальный характер, но они оправдываются.
3.1.2 Составление расписания.
Составление расписания составляет второй этап решения, для которого уже являются известными не только граф алгоритма GA и граф вычислительной сети GC, но и распределение компонент алгоритма обработки в виде матрицы S.
Поэтому под составлением расписания теперь понимается следующее: при заданных графах алгоритма GA , вычислительной сети GC и распределении S (компонент алгоритма) вершин GA по вершинам (процессорам) GC найти оптимальный порядок выполнения вершин (компонент алгоритма) графа GA и обменов, соответствующих дугам в GA ,которые соединяют вершины из разных подграфов распределения S, обеспечивающий минимальную длительность выполнения всего алгоритма.
В общем случае, одна дуга в GA может не определять операцию обмена (эта дуга соединяет вершины в GA, принадлежащие одному подграфу), может соответствовать одной операции обмена (если вершины GA из разных подграфов находятся в соседних вершинах GC) или нескольким операциям обмена (если вершины GA из разных подграфов находятся в удаленных вершинах GC).
Отсюда особенностью составления расписания является как раз то, что некоторые дуги в GA после распределения могут соответствовать нескольким операциям обмена.
Получим математическое описание процесса составления расписания.
Введем расширенный граф алгоритма GA и соответствующую матрицу распределения компонент S.
Основу графа GA составляет граф GA , веса вершин которого равны временам выполнения соответствующих компонент, так как уже известно распределения вершин GA на подграфы (т.е. вершины графа GC). Дуги, соединяющие вершины внутри каждого подграфа, являются невзвешенными. Дуги, соединяющие вершины GA из разных подграфов преобразуются по следующему правилу. Допустим такая дуга соединяет вершины c и c, распределенные на процессоры р1 и рk соответственно; и пусть кратчайший путь между данными процессорами р1 , р2 , ... рk -1 , рk проходит через промежуточные процессоры. Тогда для каждой пары процессоров рi и рi+1 , где i = 1, k-1 требуется выполнить по одной операции обмена. Поэтому исходная дуга в GA заменяется на последовательность из k-1 вершин, каждая из которых соответствует времени передачи заданного объема информации для исходной дуги между двумя процессорами из общего k-1 числа пар. Естественно, что эти вновь введенные вершины соединяются невзвешенными дугами в том же самом порядке как образуется последовательность процессоров для передачи информации, то есть вершина c соединяется дугой с дополнительной вершиной первой пары процессоров р1 и р2 , потом с дополнительной вершиной следующей пары процессоров р2 и р3 и так далее. Последняя дуга соединяет дополнительную вершину пары процессоров рк-1 , рк и вершину c.
Отсюда в число вершин n нового (расширенного) графа GA входят n вершин исходного графа GA и nс дополнительных вершин, образованных операциями обмена, то есть n = n + nc .
Предположим теперь, что в процессорах отсутствует совмещение операций счета и ввода-вывода.
Новая (расширенная) матрица распределения S имеет размер m n. Для вершины с номерами от 1 до n матрица S совпадает с матрицей S. Дополнительные вершины от операций обмена между двумя процессорами будут как бы одновременно принадлежать тем подграфам, которые соответствуют (распределены) этим процессорам.
Такая двойственная принадлежность операций обмена - следствие одновременной занятости процессора-отправителя и процессора-получателя обменом (в процессорах отсутствует совмещение операций счета и ввода-вывода).
Таким образом, в расширенном ориентированном графе GА веса имеют только вершины.
Допустим исходный граф GА приведен на рис.3.4а, а граф GC на рис.3.4б. Распределение вершин (компонент) GA дается матрицей S(рис.3.4в). Вершины графа GA 3 и 6, назначенные на процессоры 3 и 1, обмениваются данными через процессор 2; а вершины 2 и 9, принадлежащие процессорам 2 и 3 , обмениваются данными непосредственно. На рис.3.4а пунктиром показаны дополнительные вершины, учитывающие наличие процессов обмена. А в матрице S (рис.3.4в) дополнительные вершины от обмена принадлежат одновременно 2-м подграфам.
Теперь дадим математическую постановку для составления решения.
Составить расписание - это означает найти вектор t = [ti], где i = 1, n - время начала выполнения (запуска) компоненты соответствующей i-ой вершине в GА , удовлетворяющее следующим условиям:
1.
2. для всех дуг (i, j) в GА (ti - время выполнения операции i-ой вершины GА) (23)
3. , если вершины i и j принадлежат одному подграфу (в силу последовательного характера работы каждого процессора )
Рис.3.4
Под длиной расписания понимается время завершения работы всего алгоритма, считается, что он начал выполняться в нулевой момент времени. Поэтому длина расписания
Требуется найти расписание t, которое обеспечивает получение минимальной длины min tmax .Такая минимизация выполняется за счет нахождения определенного порядка выполнения вершин графа GА .
Для нахождение решения, то есть нахождение вектора t в [4] предлагается воспользоваться известным списочным методом HLFET (High Level First with Estimated Time). Этот метод позволяет получить решение, хотя критерий оптимальности не определяется.
Каждой вершине графа GА ставится в соответствие число, называемое приоритетом. Если две вершины графа GА связана дугой, то приоритет вершины, из которой дуга выходит, больше приоритета второй вершины. Список приоритетов определяет последовательный или линейный порядок выполнения компонент алгоритма, соответствующих вершинам графа GА в одном из подграфов - из 2-х вершин выполняется раньше та, которая имеет больший приоритет. Конкретно приоритеты могут быть определены следующим образом. Введем в граф GА конечную вершину с номером n +1 (на рис.3.4а эта вершина затемнена) и направим в нее дуги из тех вершин GА , которые не имеют выходных дуг. Из всех путей, ведущих из i-ой вершины в конечную найдем путь, имеющий максимальную длину (критический путь).
Чтобы найти максимальную длину для графа с положительными весами можно воспользоваться алгоритмом нахождения кратчайшего пути, но для графа с отрицательными весами. Приоритет i-ой вершины равен длине этого пути. Тем самым для любых двух вершин i и j, связанных дугой, приоритет i-ой вершины как минимум на величину ti больше приоритета j-ой вершины.