Спец часть (часть 3) (3 поток) (2015) (by Кибитова) (1161603), страница 42
Текст из файла (страница 42)
и в это время процессорыСловом,заставить параллельную вычислительную систему или супер-ЭВМ работать сопять простаивают...максимальнойэффективностьна конкретнойпрограммеэто,илипрямоскажем, задачане сиз простых,Словом, заставитьпараллельнуювычислительнуюсистемусупер-ЭВМработатьпосколькунеобходимотщательноесогласованиеструктурыпрограмми алгоритмовсмаксимальнойэффективностьна конкретнойпрограммеэто, прямоскажем,задача не из простых,особенностямиархитектурыпараллельныхвычислительныхсистем.поскольку необходимо тщательное согласование структуры программ и алгоритмов сСуперлинейноеускорение. Приувеличении числапроцессоров, например,особенностями архитектурыпараллельныхвычислительныхсистем.
в 2 раза задачаначинаетвыполнятьсябольше,чемувеличениив 2 раза. Такоееслинапример,она начинаетсяпомещатьсявСуперлинейноеускорение.Причиславозможно,процессоров,в 2 разазадачакэшпроцессоров,при условии,помещаласьи приходилосьобращатьсяк медленнойначинаетвыполнятьсябольше, чточемраньшев 2 раза.неТакоевозможно,если она начинаетсяпомещатьсявпамяти.кэш процессоров, при условии, что раньше не помещалась и приходилось обращаться к медленнойРассмотрим4 основные Графовые модели программ: граф управления программы (ГУ),памяти.информационныйграф программы(ИГ), операционнаяистория(ОИ), информационнаяРассмотрим 4 основныеГрафовые моделипрограмм: графуправленияпрограммы (ГУ),история(ИИ).информационный граф программы (ИГ), операционная история (ОИ), информационная историяГраф(ИИ). управления. Каждому оператору исходной программы поставим в соответствие вершинуграфаэкземпляр преобразователяилиисходнойраспознавателяв зависимоститипа оператора.ПолучимГраф —управления.Каждому операторупрограммыпоставимотв соответствиевершинумножествовершин,междукоторымисогласноисходнойпрограммеопределимотношение,графа — экземпляр преобразователя или распознавателя в зависимости от типа оператора.
ПолучимсоответствующеепередачеЕсли текстпрограммыдопускаетвыполнениеодногомножество вершин,между управления.которыми согласноисходнойпрограммеопределимотношение,операторанепосредственноза другим, тоЕслисоответствующиевершинысоединимдугой, одногосоответствующеепередаче управления.текст программыдопускаетвыполнениенаправленнойот предшественникак последователю.Его основнымсвойствомоператора непосредственноза другим,то соответствующиевершинысоединимявляетсядугой,направленной от предшественника к последователю.
Его основным свойством являетсяданные программы и наблюдаем за ее выполнением на обычном последовательном вычислителе.Каждое срабатывание каждого оператора (а оно необязательно будет единственным) будемфиксировать отдельной вершиной. Получим множество, которое количественно почти всегда будетотличаться от множества вершин графа управления. В данном случае порядок непосредственногосрабатывания операторов можно определить точно. Соединяем вершины дугами передачуправления, получаем ориентированный граф.
Этот граф представляет единственный путь отначальной вершины к конечной. По существу это не что иное, как последовательность22.Закон Амдала,его следствия.Графалгоритма.Критическийпуть графасрабатыванияпреобразователейи распознавателейисходнойпрограммыпри заданных входныхданных.
В операционнойистории от входных данныхзависитпрактически все: общее числоалгоритма,ярусно-параллельнаяформаграфавершин,количествовершин,соответствующиходномуоператору,и дажевычислительныхнабор присутствующихалгоритма. Этапы решения задач на параллельныхпреобразователей и распознавателей. Для графа управления.системах.Информационная история. Снова каким-то образом определим начальные данные программы ибудем наблюдать за ее выполнением на последовательном вычислителе. Каждое срабатываниекаждого оператора-преобразователябудем фиксироватьотдельнойвершиной.СоединимвершиныПредположим,что в вашей программедоля операций,которыенужновыполнятьдугами передач информации,ориентированныйграф. Дляинформационногографа.последовательно,равна f, получимгде 0<=f<=1(при этом доляпонимаетсяне по статическомчислуПустьпрификсированныхвходныхданныхпрограммаописываетнекоторыйалгоритм.Построимстрок кода, а по числу операций в процессе выполнения).
Крайние случаи в значениях fориентированныйграф. В качествевершин возьмеммножество,последовательнымнапример, множество точексоответствуютполностьюпараллельным(f=0)любоеи полностью(f=1)арифметического пространства, на которое взаимнооднозначно отображается множество всехпрограммам.Так вот, для того, чтобы оценить, какое ускорение Sопераций алгоритма. Возьмем любую пару вершин и, v. Допустим, что согласно описанному вышеможетбытьпорядкуполученона компьютереиз 'p'вершинепроцессоровприданномаргументзначенииf, можночастичномуоперация,соответствующаяи, должнапоставлятьоперации,воспользоватьсязакономАмдала:соответствующей вершине v.
Тогда проведем дугу из вершины и в вершину у. Еслисоответствующие операции могут выполняться независимо друг от друга, дугу проводить не будем.В случае, когда аргументом операции является начальное данное или результат операции нигде неиспользуется, возможны различные договоренности. Например, можно считать, чтосоответствующие дуги отсутствуют. Мы будем поступать 1−в зависимости от обстоятельств.Построенный таким образом граф будем называть графом алгоритма.Независимо от способапостроения ориентированного графа, те его вершины, которые не имеют ни одной входящей илиЕсли9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, товыходящей дуги, будем называть соответственно входными или выходными вершинами графа.ускоренияболее,чемалгоритмав 10 разпорождаетполучитьориентированныйв принципе невозможнозависимостиИтак, каждоеописаниеациклическийвнемультиграф.Верноотикачествареализациипараллельнойчастикодаичислаиспользуемыхпроцессоров(ясно,обратное.
Если задан ориентированный ациклический мультиграф, то его всегда можночто10 получаетсятольков том алгоритма.случае, когдавремяисполненияпараллельнойрассматриватькак графнекоторогоДля этогокаждойвершине нужнопоставить вчасти равно0).соответствие любую однозначную операцию, имеющую столько аргументов, сколько дуг входит ввершину. Поэтомумежду алгоритмамии рассматриваемымиграфамиопределенноевзаимноеПосмотримна проблемус другой стороны:а какую жечастьестькоданадо ускорить(а значитсоответствие.и предварительно исследовать), чтобы получить заданное ускорение? Ответ можно найтив Утверждениеследствии из4.1закона Амдала: для того чтобы ускорить выполнение программы в q разПусть задан ориентированный ациклический граф, имеющий n вершин. Существует число s < n,необходимо ускорить не менее, чем в q раз не менее, чем (1-1/q)-ю часть программы.для которого все вершины графа можно так пометить одним из индексов 1, 2, ..., s, что если дугаиз вершины с индексом i идет в вершину с индексом j, то i<j.Пустьпривфиксированныхпрограммаописываетнекоторыйалгоритм.Выберемграфе любое числовходныхвершин, неданныхимеющихпредшествующих,и пометимих индексом1.Построимграф.
иВинцидентныекачестве вершинлюбоемножество,Удалим из ориентированныйграфа помеченные вершиныим дуги.возьмемОставшийсяграф такжеявляетсяациклическим.Выберем вточекнем любоечисло вершин, непространства,имеющих предшествующих,и пометим ихнапример,множествоарифметическогонаиндексом2.Продолжаяэтотпроцесс,вконцеконцов,исчерпаемвесьграф.Таккакприкаждом Возьмемкотороевзаимнооднозначно отображается множество всех операций алгоритма.шаге помечаетсяне менееоднойвершины,чтото числоразличныхиндексоввышене превышаетчисла порядкулюбуюпару вершини, v.Допустим,согласноописанномучастичномувершинграфа.операция, соответствующая вершине и, должна поставлять аргумент операции,Отсюда следует, что никакие две вершины с одним и тем же индексом не связаны дугой.соответствующейвершине v.
Тогда проведем дугу из вершины и в вершину у. ЕслиМинимальное число индексов, которым можно пометить все вершины графа, на 1 больше длинысоответствующиеоперациимогутнезависимодруг от друга,дугупроводитьего критического пути.И, наконец,для выполнятьсялюбого целого числаs, не превосходящегообщегочисланевершин,будем.Вслучае,когдааргументомоперацииявляетсяначальноеданноеилино большего длины критического пути, существует такая разметка вершин графа, при результатоперациинигде не используется,которой используютсявсе s индексов.