Спец часть (часть 3) (3 поток) (2015) (by Кибитова) (1161603), страница 41
Текст из файла (страница 41)
ПосмотримСледовательно,если естьследствиииззаконаАмдала:длятогочтобыускоритьвыполнениепрограммывq раз необходимоПостроимориентированныйВ качествевозьмемлюбоенайтимножество,предварительноисследовать),чтобыграф.получитьзаданноевершинускорение?Ответ можновю с ее последовательнымвариантом,то чем в q разускоритьне менее,не менее, чем (1-1/q)-ю часть программы.
Следовательно, если естьследствиииззаконаАмдала:длятогочтобыускоритьвыполнениепрограммывqразнеобходимомножествоточекарифметическогонаее, чем на 99.99% кода,например,что почтивсегдажеланиеускоритьпрограммув 100раз по сравнению пространства,с ее последовательнымвариантом, тоускоритьнепеределыватьменее, чем в q раз не менее,чем (1-1/q)-ючасть программы.Следовательно,если естьда первый вывод – прежде,чемкотороевзаимнооднозначноотображаетсямножествовсехоперацийалгоритма.необходимо получить не меньшее ускорение не менее, чем на 99.99% кода, что почтивсегда Возьмемжеланиеускоритьалгоритмпрограмму в 100 раз по сравнению с ее последовательным вариантом, тоЕсли оценив заложенныйвпрограммесоставляетзначительнуюпрограммы! первыйвывод – прежде,чем переделыватьлюбуюпарувершин и,частьv.
Допустим,что Отсюдасогласноописанномувыше частичномупорядкунеобходимополучить не меньшее ускорение не менее, чем на 99.99% кода, что почти всегдалика, то на значительноеускорениекоддляпереходанапараллельныйнадоподумать.Еслиоценивзаложенныйвпрограммеалгоритмоперация,соответствующаявершинеи,должнапоставлятьаргументоперации,составляетзначительнуючасть программы! Отсюда первый вывод – прежде, чем переделыватьне отдельных компонентрядепоследовательныхвыалгоритма. поняли, что Вдоляопераций велика, то на значительное ускорениесоответствующейвершине v.надоТогдапроведемиз вершинывершину у.Еслидля переходана параллельныйподумать.Еслидугуоценивзаложенныйи ввпрограммеалгоритмнить не так сложно. кодДопустим,чтовпрограммерассчитывать не приходится и нужно думать о замене отдельных компонент алгоритма. В рядевысоответствующиепоняли, что доля последовательныхоперацийвелика,независимото на значительноеускорениечисел:операциимогутвыполнятьсядруготдруга,дугупроводитьслучаев последовательный характер алгоритма изменить не так сложно.
Допустим, что в программерассчитыватьнеприходитсяинужнодуматьозаменеотдельныхкомпоненталгоритма. ВряденеВ случае,когдаоперацииявляетсяначальное данное или результатестьбудем.следующийфрагментдляаргументомвычисления суммыn чисел:случаев последовательный характер алгоритма изменить не так сложно. Допустим, что в программеs=0 операциинигденеиспользуется,возможныразличныедоговоренности. Например,есть следующий фрагмент для вычисления суммы n чисел:Doi=1,nможно считать, что соответствующие дуги отсутствуют. Мы будем поступать вs=0 s = s + a(i)Do i = 1, nоей природе он строго зависимостипоследователен,какоттакобстоятельств.Построенный таким образом граф будем называть графомEndDos=s+a(i)и все итерации выполняютсяодназадругой.алгоритма.(можно то же самое на любом другом языке) По своей природе он строго последователен, так какEndDoи никакого эффекта от использованияНезависимоспособапостроенияграфа,те его вершины,которые нена i-й итерацииотциклатребуетсярезультаториентированногос (i-1)-й и все итерациивыполняютсяодна за другой.то же самоена любом другом языке) По своей природе он строго последователен, так какевиден.
Поскольку в(можнобольшинствереальныхИмеем100%последовательныхопераций,азначитиникакогоэффектаотиспользованияни однойили выходящейбудем выполняютсяназывать соответственнонаимеютi-йразницы,итерациитребуется результатс (i-1)-й идуги,все итерацииодна за другой.всех?) нет существеннойв циклакакомвходящейпараллельныхкомпьютеров.Вместес тем, выходочевиден. Поскольку в большинстве реальныхвходнымииливыходнымивершинамиграфа.Имеем100%операций,а значити никакого эффекта от использованияжения.
Сначала найдемсуммупарпоследовательныхсоседнихпрограмм (вопрос: а почему в большинстве, а не во всех?) нет существенной разницы, в какомпараллельныхкомпьютеров. Вместе с тем, выход очевиден. Поскольку в большинстве реальныхтим, что при такой схемевсе пары можнопорядке складывать числа, выберем иную схему сложения. Сначала найдем сумму пар соседнихпрограмм(вопрос:а почемув—большинстве,а не во всех?)нет существеннойразницы, в какомдем действовать абсолютноаналогично,Критическийпутьграфапутьмаксимальнойдлиныв ориентированномэлементов: a(1)+a(2),a(3)+a(4),a(5)+a(6)и т.д. Заметим,что притакой схеме все парыациклическомможнопорядкескладыватьчисла, выберем иную схему сложения. Сначала найдем сумму пар соседнихсь бы в данном случаевсе проблемыудалосьскладывать одновременно! На следующих шагах будем действовать абсолютно аналогично,графе.элементов:цессоры разнородны посвоей a(1)+a(2), a(3)+a(4), a(5)+a(6) и т.д.
Заметим, что при такой схеме все пары можнополучив вариант параллельного алгоритма. Казалось бы в данном случае все проблемы удалосьскладыватьогда кто-то из них ещетрудится, одновременно!а кто-то уже всеНа следующих шагах будем действовать абсолютно аналогично,разрешить. Но представьте, что доступные вам процессоры разнородны по своейполучив вариантпараллельного алгоритма. Казалось бы в данном случае все проблемы удалосьразброс в производительностикомпьютеровпроизводительности. Значит будет такой момент, когда кто-то из них еще трудится, а кто-то уже всеразрешить. Нопредставьте,номерной загрузке процессоровбудеткрайне что доступные вам процессоры разнородны по своейсделал и бесполезно простаивает в ожидании. Если разброс в производительности компьютеровпроизводительности.Значит будет такой момент, когда кто-то из них еще трудится, а кто-то уже всепроцессоры одинаковы.Проблемы кончились?большой, то и эффективность всей системы при равномерной загрузке процессоров будет крайнесделал идругомубесполезнорезультат-то надо передатьдля простаивает в ожидании.
Если разброс в производительности компьютеровнизкой. Но пойдем дальше и предположим, что все процессоры одинаковы. Проблемы кончились?и эффективность всей системы при равномерной загрузке процессоров будет крайнечу уходит время... и вбольшой,это времятопроцессорыОпять нет! Процессоры выполнили свою работу, но результат-то надо передать другому длянизкой. Но пойдем дальше и предположим, что все процессоры одинаковы.
Проблемы кончились?продолжения процесса суммирования... а на передачу уходит время... и в это время процессорыОпятьнет! Процессорывыполнили свою работу, но результат-то надо передать другому дляистему или супер-ЭВМработатьсопять простаивают...продолженияпроцессасуммирования... а на передачу уходит время... и в это время процессорыамме это, прямо скажем,задача не изпростых,Словом, заставить параллельную вычислительную систему или супер-ЭВМ работать сопятьпростаивают...структуры программи алгоритмовсмаксимальной эффективность на конкретной программе это, прямо скажем, задача не из простых,ислительных систем.Словом, заставить параллельную вычислительную систему или супер-ЭВМ работать споскольку необходимо тщательное согласование структуры программ и алгоритмов спроцессоров, например,в 2 раза задачамаксимальнойэффективность на конкретной программе это, прямо скажем, задача не из простых,порядкескладыватьвыбереминую схемуСначаланайдем суммупар всоседнихпрограмм(вопрос: ачисла,почемув большинстве,а не сложения.во всех?) нетсущественнойразницы,какомэлементов:a(1)+a(2),числа,a(3)+a(4),a(5)+a(6)и т.д.Заметим,что Сначалапри такойсхеме суммувсе парыпорядке складыватьвыбереминуюсхемусложения.найдемпарможнососеднихскладыватьодновременно!На следующихбудем действоватьабсолютноэлементов: a(1)+a(2),a(3)+a(4),a(5)+a(6) и шагахт.д.
Заметим,что при такойсхеме всеаналогично,пары можнополучиввариантпараллельногоалгоритма. Казалосьбыдействоватьв данном случаевсе проблемыудалосьскладыватьодновременно!На следующихшагахбудемабсолютноаналогично,разрешить.Но представьте,что доступныевампроцессорыпо всесвоейполучив вариантпараллельногоалгоритма. Казалосьбы в разнородныданном случаепроблемы удалосьпроизводительности.Значит чтобудеттакой момент,когда кто-тоиз них ещепотрудится,разрешить. Но представьте,доступныевам процессорыразнороднысвоей а кто-то уже всесделали бесполезно простаиваетв ожидании.Есликогдаразбросв производительностикомпьютеровпроизводительности.Значит будеттакой момент,кто-тоиз них еще трудится,а кто-то уже всебольшой,тоиэффективностьвсейсистемыприравномернойзагрузкепроцессоровбудет крайнесделал и бесполезно простаивает в ожидании.
Если разброс в производительности компьютеровнизкой.Нотопойдемдальше и предположим,процессорызагрузкеодинаковы.Проблемыкончились?большой,и эффективностьвсей системычтопривсеравномернойпроцессоровбудеткрайнеОпятьнет!выполнилисвою работу,но процессорырезультат-тоодинаковы.надо передатьдругомукончились?длянизкой.НоПроцессорыпойдем дальшеи предположим,что всеПроблемыпродолженияпроцесса суммирования...передачууходит время...в это времяпроцессорыОпять нет! Процессорывыполнили своюа наработу,но результат-тонадоипередатьдругомудляопятьпростаивают...продолженияпроцесса суммирования... а на передачу уходит время...