Для студентов НИУ «МЭИ» по предмету Параллельные системы и параллельные вычисленияСложность и эквивалентные преобразования параллельных программСложность и эквивалентные преобразования параллельных программ 2015-08-23СтудИзба

Книга: Сложность и эквивалентные преобразования параллельных программ

Описание

Описание файла отсутствует

Характеристики книги

Учебное заведение
Просмотров
153
Скачиваний
11
Размер
6,8 Mb

Список файлов

001

Распознанный текст из изображения:

3, я,ложность и эквивалентные преобразования параллельных

программ

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

Сложность метода и реализующей его параллельной программы характеризует время выполнения программы и определяется как функция от сложности данных [см. раздел 2), к которым применяется метод или программа, и для многих вычислительных задач [вычисление выражений, решение систем линейных уравнений и др.) такие функции построены. В приведенных в разделе 1 примерах сложность программы параллельного вычисления п1 ведет себя как 0[1оя[п)), сложность параллельного перемножения матриц легко определяется по степени распараллеливания и зависит от их размера. Гораздо сложнее дело обстоит с оцениванием сложности рекурсивных программ, реализующих вычисления по рекуррентным формулам и выполняющих обработку сложных структур данных и

др.

Однако «чистые» математические оценки сложности параллельных методов и программ решения задач не учитывают многие факторы их реализации в конкретной вычислительной среде, где определяющими факторами являются: интенсивность межкомпьютерных взаимодействий и интенсивность обменов между разли ~ными уровнями памяти, алгоритмы статического (предварительного) планирования выполнения параллельной программы и динамического управления процессами и загруженностью на ВС [11, 121.

В этом разделе мы рассмотрим, каким образом можно оценивать временную слоя<ность выполнения параллельных программ на примере их представления в виде функций на созданном нами языке функционального параллельного программирования РРТТ. 1уи»с>1опи! рата!1е! >ур111«г! 1апяис~ь>е) [111], который подробно описан в главе!!1.

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

В п. 3.1 приводится краткое описание основных конструкций, используемых для

представления функций в язьпге РРТ1..

*Пу>якт 3.2 посвящен описанию метода оценивания сложности параллельно~о

вычисления значений.

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

002

Распознанный текст из изображения:

Пункт 3,4 посвящен оцениванию сложности параллельных программ путйм

моделирования процессов их выполнения.

3.1. Оценивание сложности параллельных программ, представленных иа

языке БРТД

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

3.1.1. Основные конструкции языка РРТЕ

В Е1>7Х используются четыре бинарные операции композиции, а также системы функциональных уравнений для определенля новых функций из известных функций, В РРП. рассматривщотся типизированные (щп)-арные, т>0, п>0 функции. отображающие кортежи типизированных элементов длины т в кортежи типизированных элементов длины и. Таким образом, любая (щ,п)-арная функция 1о">", имеющая тип 1,1,...1„, ->1',1' ...1,, есть однозначное в общем случае частичное отображение; Г: 13, х 13, х ..хр, -+ Вг хРп х...х 13, где О,

непустое множество элементов типа 1.

Далее кортежи обозначаются, так же как и типы, в виде конкатенации их

элементов. Для л> или и равным нулю вводится множество 13 =1,>, содержащее

(О>

единственный элемент, кортеж нулевой длины, обозначаемый й, который

удовлетворяет условию >.и = аХ = а для любого кортежа а .

Все функции в ГРТ~ являются строгими, т.е. значение функции не определено,

если хотя бы один из элементов ее входного кортежа не определен.

Неопределенное значе>ше функции в БРТД используется в двух смыслах: оно

:шбо отражает неограниченный процесс вычислений, либо является вычислимым и в

асс чь с~.Ась 94'ам

этом случае ось>рвэкдс';ся о>. Поэтому значение функции не определено, если

вычисление значения хотя бы одного элемента ее входного кортежа длится

л ъч,О

неограниченно долго или хвзж-бы гдно из-эзлх лцавезцзй вычислено и имеет

значение с>. Таким образом, предполагается, что каждое множество данных О, типа 1

содержит неопределйнное значение о>.

В РРТТ используется четыре бинарных ассоциативных операции композиц>ш функций: я — последовательная композиция, — конкатенация кортежей — зна >они>3 функции, -> — условная композиция и 9 — объединение ортогональных функций.

Ниже, определяя синтаксис и семантику операций композиции функций. мы используем символы а,р,у, ..., возмо>кно с индексами, для обозначения кортежей; график функции Т обозначается 1': Г = Яа, Р) / Г(а) = р), где > (а) обозначает реэультат применения функции Г к кортежу сс. Мы опускаем указание арности функции там, где в том нет необходимости. Следующий порядок старшинства операций композиции функции: е, *, — >, 0ч-, убывающий слева направо, позволяет далее опускать ряд скобок в представлении функций.

1) Операция последователь>~ой композиции (~)

1оын = 1","л> в1„цл> Г = 1(а, 13) ! ВУ((а, У) ~ Г> ж(У, Р) е Г>)),11а) = 1;(1',(а)).

003

Распознанный текст из изображения:

2) Операция конкатенации кортежей-значений функций (я):

!ч""'"ч "'""-'' = ! "" " ' я Г„'"и"-'! à —. ((а Ц),) ! (а (3 ) и Г, л

(сс,/Зе) и Г,); Г(а) = Г (а)Гз(и).

3) Операция условной композиции;

Го"'"' = 1","""" — ь Г,'"'"',Г = ((а,!э) ! (о.,р) и Г, л Зу((а,у) и Г)),Г(а) = Г(а), если значение Г (а) определено; если Г (а) или Г,(а) = оз, то Г(а) = со, если процесс вычислений Г,(а) или Г,(а)длится бесконечно, то вычисление значения Г(а) также продолжается бесконе шо.

4) Операция объединения графиков ортогональных функций (0ь):

Г'"'"' =Г,'"'"~ Оь Г„"'"',Г(а) = Г(а)нГ,(а);Г(а) = Г(а) или !(а) = !(а) в

зависимости оттого, определено ли значение Г,(сх) или Гя(а) соответственно.

Напомним, что две функции Г~ и Гз ортогональные, если пересечение их графиков

пусто.

С вычислительной точки зрения только для операции последовательной композиции требуется строго последовательное вычисление значений функций, к которым она применена. Для операций я и — ь значения функций могут вычисляться в любом порядке, в том числе параллельно. Для операции О+ вычисление значений соединяемых ею функций должно осуществляться параллельно или квазипараллельно, т.е, вычисление последовательно значений функций Г,(а) и Гз(сс) не гарантирует получение результата. Е!апример, если процесс вычислений Гз(а) длится неограниченно, а значение Г,(а) определено, то, начав с вычисления Гз(сс), мы не сможем получить ожидаемый результат (некоммутативный параллелизм, см. раздел 1). Такие функции называет параллельными (21], и вычисление их значений требует применения изощренной техники при построении последовательной программы.

ТРТТ. досчагочно выразителен, чтобы в нем можно было представлять параллельные функции. Например, известная в телефонии функция голосования Г(хн х, хз), которая определена в том и только том случае, если определена любая пара ее аргументов и они равны, является параллельной и имеет следующее представление в гТТТл (дз яд„') яес) -+ дз О+(д,э ~~тз) еео — + ж, О~(дз *тз) вес( — э д,',

3 3

где д,,ггз,п, - функции выбора аргумента: д, (х„х„,...,х,„) = х„и ец(х, у)— предикат, который определен, если х = у, и не определен в противном случае.

Интересно провести параллель между понятием информационной независимости

компонентов программы, которое мы обсуждали в разделе 1, и его аналогией в

ГРТТ..

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

004

Распознанный текст из изображения:

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

Общей формой задания функций 'в РР77 являются системы функциональных уравнений: (*) х, = т,,1=1,2,...,п, где х, — функциональная переменная, т, — терм той же арности. что и х, .

Пусть Х и à — множества символов функциональных переменных и базисных функций соответственно. Для их обозначения используются символы х и 1' с возможным их индексированием, приписываемым снизу или сверху. Неявно предло:шгается, что каждая функциональная переменная или базисная функция имеет заданную арность.

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

При любой интерпретации функциональных переменных как строгих функций. термы одной и той >ке арности образуют частично упорядоченное множество относительно операции включения их графиков, и каждая цепь функций в этом множестве имеет точную верхнюю грань. Наименьшим элементом этого множества являешься нигде не определенная функция, которую мы обозначаем 9'"'"', т>0, п>0. При этом условии и предполагаемом упорядочении данных: о> < с1 и г( < г) для любого г( Е П (Р— непустое множество данных) операции композиции функций являются монотонными и, оолее того, непрерывными относительно введенного частичного порядка (14, 15). Как следствие, любая система функциональных уравнений (*) всегда имеет наименьшее решение, которое может быть определено явно, как точная верхняя грань цепи функций: х~~ '> = гх>~~~ ! х, ~) = 1,2,.,п)т, ([х>~~~ ! х,

1,2,.0р>1т, — результат одновременной подстановки термов х>~ ~, 1 = 1,2,...,п, вместо всех вхождений переменных х„в терм т,). Этот результат мы используем далее в п. 3.2 для определения сложности параллельного вычисления значений функций.

Язык РРТИ создавался с целью формализации общепринятой математической нотации задания функций и одновременно явного отражения параллелизма вычислений в этом задании на основе свойств операций композиции функций. Следующий пример иллюстрирует типичное задание рекурсивной функции:

1Г р, (х, у) 11>еп Г, (Г(х, у), 1; (у)), Р(х, у) = 1Г р,(х, у) 11>еп Г,(х, у),

1Г рз(х, у) 11>еп Р(Г, (х, у), у),

которое имеет следующее схемное представление в РРТТ: Р (Р~ +(Г*п, 1„) Г,)б (Р +1>)О+(Р> +(Г4 ~л> )~Г) при той >ке интерпретации символов базисных функций, что и в исходном задании функции. Схема функции позволяет не только наглядно отобразить структуру функции, но и параллелизм вычислений ее значений, являющийся следствием аппликативных сйойств операций композиции.

Несколько слов необходимо сказать о задании в БРТД базисных функций. Для

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

005

Распознанный текст из изображения:

функции-конструкторы и функции-деструкторы (обратные функции), вводимые при определении абстрактного типа. Например, мы можем определить в РРТЕ как абстрактный тип данных множество для представления натуральных чисел ь)АТ:

, где введены конструкторы О ' и зпсс ' '

<о и )а,)) )а,)),, пш )а,п

указанных арностей, так чтоф(2) = О, зцсс(х) х з"сс. Одновременно [й- неявно'~-

вводятся сопровождающие их функции-деструкторы; (О )' ' ' и зцсс ' ' такие, что

-) п,о)

О (х) = )., если х = О и О ) (х) ='аэ в противном случае; ь асс )(х) = у, если х .= у о

зпсс и ьцсс (х) = аа, я противном случае.

Множество, содержащее введенные при определении абстрактного типа данных

А)АТ конструкторы и обратные к ним функции-деструкторы, а также всегда

о~

включаемые в это множество неявно функции выбора аргумента

О < ) ( т, образуют полное множество базисных функций в том смысле, что любая

вычислимая на ХАТ функция может быть определена в РРТЕ [14,! 5,281.

В РРТЕ символы а) и ). используются также для представления истинностных

значений кистю)а» и вложь» соответственно, что легко объясняет интерпретацию

предиката еа) в рассмотренном выше примере.

Например, функция факториал на Л)АТ может быть определена в следующей форме: х =О О зцссОч-()г) озг)сс х) Г„„, гдето(х,у) = хху (мы не раскрываем далее рекурсивное определение функции 1;,„,).

3.1.2. Модель параллельного вычисления значений функций в РРТЕ

Мы рассмотрим модель параллельного вычисления значений функций, которая впервые была описана в [12) и которая была положена в основу одной из параллельных реализаций РРТЕ на кластерах [14, 15]. Эта модель основана на определенных правилах свертывания и развертывания деревьев, которые представляют состояния вычислительного процесса. Модель отличается от модели абсолютно параллельного вычисления значений функций, которую мы рассмотрим в разделе 4 и которая позволяет осуществлять опережающие подстановки вместо функциональных переменных при вычислениях.

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

Пусть задана система функциональных уравнений (о) х, =т,,) =1,2,...,п, и пусть нас интересует процесс вычисления х,"""(а) для некоторого кортежа и, где х, )-я координата кортежа — наименьшего решения системы уравнений (о).

"Процесс вычисления значения функции представляет собой конечную или бесконечную последовательность изменения состояний, каждое из которых является размеченным деревом, листья которого помечены символами кортежей данных или символом неопределенного значения а), а другие вершины дерева помечены сь(мволами операций композиции функций или термами. Деревья, состоящие из двух вершин, у которых лист помечен некоторым кортежем данных а, а вершина— символом одной из переменных х„[=1,2,...,п, ассоциируются с начальными

состояниями, отража)ощими первое состояние в вычислительном процессе значения

006

Распознанный текст из изображения:

х(и). Одновершинные деревья, помеченные символом одного из кортежей данных

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

Процесс вычисления значения х„(а) начинается из начального состояния, соответствующего х,(а7, и представляет собой конечную или неограниченную последовательность состояний, изменения крторых происходят в общем случае асинхронно и одновременно по правилам свертывания и развертывания деревьев, приведенным на рис. 3.1 и рис. 3.2.

х, т,

грт2

о

т~ Лт, Де!*,— ~,О~-)

отз

Т а

Рис. 3. !. Правила развертывания деревьев

2. о

о

3.

с е

„о~ о»

в б.

Рис. 3.2. Правила свертывания деревьев

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

' о !3, если 1(а )= ~3

::Э (, : опэ,иначе

Р

оп а о~ ц

7 ДЕ (»: — «!

Р,

о го

" оз

— > (

ао оп

О+

.!Х

ась оп

у'

-) .ПО,

ао сиз

007

Распознанный текст из изображения:

Параллелизм вычислений в данной модели заключается в возмо>кности применения сразу нескольких правил к неявным поддеревьям дерева — состояния вычислений.

Уточним асинхронный параллельный характер модели вычисления значений функций, для чего рассмотрим моделирование свертывания и развертывания деревьев на идеализированной ВС с неограниченным количеством вычислительных узлов — компьютеров в ней. Все компьютеры системы работают по одной и той же программе интерпретатора, получая задания на вычисление друг от друга и применяя к соответствующим состояниям правила свертывания и развертывания деревьев. Каждый компьютер находится в одном из трех состояний: свободном, ожидания результата и активном — выполнения вычислений. Вычисление значения х(а) начинается направлением этого задания одному из свободных компьютеров ВС (начальному компьютеру). Вначале все компьютеры находятся в свободном состоянии. Действия компьютеров состоят в следующем. Если компьютер получаег задание х,(и), он переходит в активное состояние и выполняет правило 1) развертывания дерева вычислений и переходит к выполнению задания х,(а). Если т, имеет вид, указанный в правиле 2), то компьютер формирует задание т>(а) и передает его для выполнения одному из свободных компьютеров ВС, а сам продолжает выполнения задания т>(а). При этом при отправлении на другой компьютер задания оно однозначно идентифицируется, и на отсылаемом задание компьютере сохраняется контекст — дерево-состояние вычислений и место на эгом дереве, куда должен быть помещен результат выполнения ранее отосланного задания.

Если компьютер получает отличный от ш результат выполнения задания т,(а) ранее отосланного другому компьютеру задания т>(а), то он переходит в состояние ожидания результата выполнения этого задания и, получив его, пытается применить одно из правил свертывания деревьев. Если компьютер получает ранее результат т (а), то он пытается выполнить одно из правил свертывания деревьев, возмо>кно, прерывая одну из ветвей, вычисления т1(а), реализуемого им самим. Если ни одно из правил свертывания деревьев не применимо, компьютер возвращается в исходное состояние (ожидая результата т1(а) или вычислений).

Если компьютер получает задание т(и), где т = т, ° т,, то он применяет правило 3)

развертывания деревьев и переходит к выполнению задания т,(а), а после получения

его результата — к выполнению т (а).

Процесс вычисления значения х,(а) считается успешным„если на начальном

компьютере получен результат — одновершинное дерево, помеченное кортежем

Р(х (а) = Р)

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

Гакил> образом, в описанной модели вычислений значений функций параллелизм операций композиции функций: *, ->, и Оч. реализуется путем одновременного вычисления на разных компьютерах ВС значений термов, соединяемых этими оцерациями. Кроме того, не откладывается любая возможность применения любого ~>равила свертывания и развертывания деревьев, при этом не накладываются какие- либо ограничения на длительность применения любого правила (асинхронность модели).

008

Распознанный текст из изображения:

Первое условие также гарантирует корректность модели вычислений, поскольку операция композиции функций Оь индуцирует некоммутативный параллелизм при вычислениях, требующий, чтобы значения обоих термов тса) и ти(а) вычислялись параллельно или квазипараллельно '1без задержек на неограниченное время) при вычислении значения (т~ О+ тз)(а).

3.1.3. Сложность параллельного вычисления значений функций

Ниже мы опишем метод определения временной сложности параллельного

вычисления значений функций, заданных на РРТ/.

Будем исходить из общей формы задания функций в РРТЕ в виде сне~ем

функциональных уравнений (е) х, = т„1=1,2,...,п. Рассмотрим процесс

построения наименьшего решения системы уравнений (*) как точной верхней ~рани

последовательности функций-приближений х~ ',1=1,2,..., и, к > О, где х, ' = 0 (нигде

ьэ зп

неопределенная функция) и х~~'' =[к~~'!х,))=1,2,...,п)т„1=1,2,...,п, где правая

часть этого равенства есть результат одновременной подстановки приближений х,'

вместо вхождений переменных хл ) = 1,2,...,и, в терм тп

Представим хоо в эквивалентной форме в виде ортогонального разложения;

х,'~' = х'~~ Ое х~~ О ... Оч- х~~~, где термы х, не содержат вхождений операции

'3 ч,

композиции Ое.

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

п, 3.2):

А е (В Оч- С) = А е В Оч- А е С,

( В Оч- С) е А = В е А О С е А,

А ~(ВЗС) = А ' ВОе А еС,

(В О+ С) е А = В * А Ое С * А,

А — +(ВОч-С)=А — >ВОА — +С,

(ВОч- С) — э А = В-+ А ОС-+ А.

Здесь А, В, С вЂ” произвольные схемы функций. Заменяя последовательно в любом терме т вхождения левых частей этих аксиом на их правые части, мы получим ортогональное представление т .

Определим сложность параллельного вычисления значений функций х,~~ в этом разложении, полагая, что сложность с11) любой базисной функции Т задана. Эта сложность характеризует время вычисления значения функции Г, которое считается одинаковым при применении функции к любому ее аргументу из области ее определения. Для всюду неопределенной функции 0 С(0) положим равным О.

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

любой функции, построенной композицие1й ее базе)вых функций:

!

В 1151 вместо операций композиции — э иОе была введена тернарная операция. эквивалентная традиционному способу задания условного оператора. Хотя это уменьшает выразительную силу языка с позиций представления параллельных функций, тем не менее, позволяет ввести простые формы схемного представления функций, существенно упрощающие реализацию языка на многопроцессорных ВС с общей памятью. Описанный процесс параллельного вычисления значений функций достаточно просзо описать средствами нитевого (пш1111геайпд) параллельного программирования, что, в принципе, мы использовали при реализации языка ГРТТ на многоядерных компьютерах ~15).

009

Распознанный текст из изображения:

1. С(т~ т> ) = с(т ~ ) -«с(т> )

2.с(т, ' т,) = >пах(с(т,),с(т>))

3. с(т, — «т> ) = шах(с(т, ), с(т> )).

Здесь т, и т> — произвольные термы, построенные из базисных функций путем

применения операций композиции»,» и — «.

Рассмотрим пример функции вычисления и! елением отрезка (1, и] пополам,

которую мы уже приводили в разделе 1.

Схема этой функции имеет следующий вид:

х =(р — + Г,) О«р — «((Г> »1,)»х»(Г»»Г>) х)»Г»,где

Г,(х, у) =

2

р (х, у)=-х = у,

Г(х,у)=1,

Г,(х, у) = у,

Г>(х, у) = х, 16(х,у)= хху.

1 ° (

Г>(х, у) =

2

:1 = Ф-~

Легко проверить, что х = р — + Г, Ю р — «((Г> » Гз)» Я *(Г4 * Г,)» к> )» Гь,

>~ и>

х =р — +1, От р — +((1, »1.)»(р — +Г )»(Г~ »Г,)»(р — «Г ))»Гь Оьр — «((Г, »Г>)»

(Р + Г>)* (Г» *Г>)»(Р «(Г> "Гз)» к> *(Г4 *Г>)» и> )» Гь)» Гь О«Р +ИГ "1>) '(Р

((Гз *Гз)' Я»(Г> »Г>)» Я )'1»)»(Г, ° Г>)»(Р-+ Г,))'Г, О+(Р-«(1> *Г-)'(Р-«И1 "

1;)» О '" (Г> "1> )» О )» Г»)» (Р «(Г» *1> )» ИГ> » Г>)» ~ "(Г4» 15)» ~ )» Гб)» Гб.

Рассмотрим, каким образом можно на основе этих формул определить среднее

время вычисления значений определяемых системой уравнений (») функций >ш

области их определения. Сначала рассмотрим случай определения времени

параллельного вычисления значения функции — наименьшего решения для х„(.=

1,2...п в (») на заданном кортеже а а Р(х,), где 0(х,) — область определения х,.

)

Очевидно, что в последовательности приближений хио должно существовать

зс»1) 2.,

ав»>

такое минимальное К»»„, зависящее от и, что значение х, "'"'(а) определено и

х~~~(а) для к<1с»»» не определено. Это следует из того, что последовательность

приближений' х~",)с й О, образует цепь неубывающих функций относительно

отношения включения графиков функций; х~~> ~х~ь'Л для любого1>0. Также

очевидно, что в ортогональном разложении х~ """' =хги»» О«х~ """' О«...О«х~ """'

только одно из О«-слагаемых определено на а и сложность его вычисления для и

можно определить по приведенным формулам. Эта сложность является нижней

гранью сложности параллельного вычисления х,(а). Из этого следует, что всегда

можно на конструктивно заданной области определения любой функции определить

верхнюю и нижнюю границы ее параллельного вычисления, что часто является

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

временным ограничениям.

010

Распознанный текст из изображения:

к

19 ОСР) =:

Сложность вычисления х(1, 1) определяется по формуле: С(р — +1, ) = и!ах 1С(р), С11!)); сложность вы !исления х(1,2) — по формуле: 3г, ЕЗ) = 3с [2,) =

с2э

С (р — +((1з *1з) е 1р — + Г )* (1я ~Гз)~(р-+т!))~1ь) = и!ах 1С(р), и!ах 1(гпах»С(Я, С(1з)) ' !пах (С(р), С!1!))), ~!пах»СГ1;), С(1з)) ч- гпах 1С!'р), С(Г!)))) т С(1ь).

Если задано распределение вероятностей 9(а), о. е Р(х,), вытекающее из частоты применения х, к а, то среднее время т!'х,) вычисления значений функции х, на Р(х,) можно определить по формуле: цх, ) = 2»1»гь) х ~(й(х,, а));

аео(ч ~

где а(х,,а) — функция, которая опреде ет для заданного а указанное ранее Ож— слагаемое в ортогональном разложении х„которое определено на а .

Возможен другой, вероятно; более практичный способ определения среднего времени параллельного вычисления значений функцйй, который был разработан для оценки среднего времени выполнения последовательных программ и который основан на знании вероятности истинности условий, определяющих разветвления и циклы в программе 129). Для примера рассмотрим блок-схему программы вычисления у =',! а, на рис. 3.3.

~=! Оь

и Рг!с. 3 3 Блок-схема программы вычисления у = ,'! а,

!=!

Очевидно, что для любого и >1 условие ! > и выполняется один раз, а ! < п — и

раз. Из этого легко определить вероятности истинности обоих условий, которые

011

Распознанный текст из изображения:

11

! и

и — соответственно. Если задана область значений, которую

пь1 пь1

пробегает и при выполнении данной программы и распределение вероятностей

применения программы к и, то и в этом случае несложно определить вероятности

истинности предикатов|> и и 1< и.

равны

Ч, х(14+1,-ь1,

Слагаемое ' ' ' ' +г, есть результат вычисления ряда

! — Ч,

~ с1, х(! — с~~х((14 - 14+ с,.)х !с чс,),определяющего среднее время

с=о

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

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

начинающегося в хз и заканчивающегося оператором Оы и вероятности

прохождения по этому пути при выполнении программы.

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

3. ! легко построить следуюцсую систему автоматных уравнений:

х, =О,;х,, х, =О,;х„

Х4 =04',х4

х, =О,;х„ х, =О,.

г,

здесь сэупредйкаг ! > 4ь-и О, 1<п;х~ — неявно вводимая функциональная

переменная для начального блока блок-схемы программы, О+ выполняет роль операции обьединения нет~рай ~ыпо~~ения программы, ; — последовательная композиция (операция следования в языке регулярных выражений). Разрешая эту систему уравнений относительно х„ мы получим регулярное выражение, задающее ьсно>кество всех путей, которые фиксируют истории выполнения блок-схемы йрограммьс на рис. 3.3.

Однако процесс определения среднего времени выполнения программы можно

упростить, не определяя явно регулярное выражение, а используя систему

Например, если данная программа применяется 25 раз к и, равному 5, и 30 раз к

и, равному 6, и 0 раз к остальным и, то вероятность нахождения в цикле прп

5х254-6х30 41

выполнении программы равна Ч, = = —, а вероятность выхода из

бх25ь7х30 52

11

цикла равна Ч, = —. Задав время 1„1 = 1,2,...,6, выполнения каждого оператора О, в

52

этой программе (1, = С(О,)), мы можем определить среднее время ее выполнения при

41, х(сз +14 4-14)

заДанных УсловиЯх по фоРмУле С,, =1, +14 +

ьс

Ч~

012

Распознанный текст из изображения:

12

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

уравнений и из которой легко определяется среднее время выполнения программы.

Упростим вышеприведенную систему

рассматриваемо~ о примера блок-с

автоматных уравнений для

хс — — О,;О>,'х,,

х„= О„'О, Оч О,:О,.;О;;х,.

олнения начать

из точки х, ее блок-схемы.

1(х,) =1, Ч-1, Ч. 1(х„)

) 1(О )х(1 )ьг)(О )х(1

где ц(О) — вероятность истинности предиката О.

Разрешая эту систему относительно 1(х,), получим среднее время выполнения

программы.

Программа на рис. 3.3 может быть преобразована в эквивалентную параллельную

программу на языке ГРТЕ (см. раздел 4):

х, =(1, *Г>) ~ х,,

х =(я> я Р— >(1> "14)) я х, Оэ тс> Р— «я>,

где>,(х,,х,)=0,>з(х,,х,)=1;>,(х„х,) =х, +а(х,),14(х,,х,) =х, +1,

р(х) -=х < и, р(х) =-х > и.

Аналогично предыдущему примеру мы можем построить для этой системы функциональных уравнений систему линейных числовых уравнений для определения среднего времени параллельного вычисления значений функции наименьшего решения для х„:

1(х,) = шах(С(Т, ), С(Г, )) -ь С(х, ),

1(х, ) = г)(р) х (>пах(С(л', ) ь С(р)), шах(С(Г,), С(Г„)) ч- С(х, )) ь ч(Р) х глах((С(л ) ч

С(р), С(л, ) ) .

Однако рассмотренный метод пригоден для определения среднего времени

выполнения циклических программ и итеративных функций и в общем случае не

применим, если программы и функции являются рекурсивными.

Пусть снова рассматривается общая форма задания функций в виде системы в

общем случае рекурсивных уравнений х, = т„1 = 1,2,...,п. Заметим, что любая

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

форме. Точная верхняя грань цепи функций (хоо ~ 'к>0 ) определяет наименьшее

!

решение для х, относительно включения графиков функций. Как уже

рассматривалось, хоп можно представить в виде ортогонального разло>кения),

х Г" = х"' Ог х'" О ... Оэ х~", где г,(1с) — неубывающая функция от 1с.

и ',по

Перейдем от системы автоматных уравнений к системе числовых линейных

уравнений

014

Распознанный текст из изображения:

14

значение р(а) истинно, и ложно в противном случае. Напомним, что значение

нложь» предиката обозначается в РРТЕ как ш.

Пусть заданы вероятности истинности условий для функций и предикатов,

входящих в х~, при вычислении значений функции на рассматриваемой подобласти Р е Р(х,). Очевидно, что в этом случае вероятность того, что х', будет определена на произвольном а ЕР, может быть определена как произведение всех вероятностей истинности условий для всех входящих в х,' функций и предикатов. Однако, для того, чтобы эти вероятности получить на практике, потребуются многочисленные «прогонки» функциональной программы с целью достоверного сбора и обработки необходимых для этого статистических данных.

3.2. Сложность и эквивалентные преобразования параллельных программ

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

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

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

программ. При этом время выполнения и требуемая память являлись (и продолжают

0 являться) основными критериями оптимальности программы. Школами Ершова

1»)з ~." А.П, и Потосина 13,4) была проделана огромная теоретическая работа по созданию

0

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

форме и построению оптимальных компиляторов.

Полученные в этих исследованиях результаты не утратили своего значения и

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

Сохранение наследия последовательного программирования заставляе~ искать

эффективные методы распараллеливания последовательных программ. В разделе 4

мы рассмотрим, какой ценой оборачивается попытка абсолютного

распараллеливания даже простой структуры последовательных программ. Поэтому

основной акцепт в распараллеливании последовательных программ делается на

распараллеливание выражений и регулярных циклов 1) 91, в которых, как показывает

статистика, сосредоточена большая часть параллелизма и для которых сегодня

созданы достаточно эффективные методы преобразования в параллельную форму.

Однако, для сложных зависимостей операторов, выполняющих на различных этапах

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

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

и

различного подхода к построению программы вычисления ~~ а,, Если программа

нацелена на экономию памяти, то компилятор не сможет обнаружить в ней

параллелизм, анализируя информационную зависимость между операторами,

015

Распознанный текст из изображения:

!5

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

Нужны более изощренные приемы вычисления 2'а, путем разбиения интервала

и п~ пэ и

[1+п~ на подынтервалы ,'~ =~а, ч- 2 а, +...+ ,'~а,, отраженные

~=пни

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

С формальной точки зрения любое преобразование программы логично

рассматривать как переход от исходной се формы к другой эквивалентной форме.

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

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

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

3.2.1. Исчисление эквивалентности функциональных схем

Напомним, что две функциональных схемы А и В эквивалентны, если для любой интерпретации ир входящих в них символов функций, рассматриваемых как функциональные переменные графики функций пд(А) и д(В) равны. Для обозначения эквивалентности А и В используется запись А = В. Построение исчислений эквивалентности функциональных схем имеет свою историю развития, начиная с формализации эквивалентности итеративных функциональных схем 1301 и заканчивая рекурсивными определениями функций в виде систем функциональных уравнений [31].

Следующие аксиомы имеют в некотором смысле фундаментальный характер; в

них А, В, С вЂ” произвольные схемы; Π— символ всюду неопределенной функции;

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

016

Распознанный текст из изображения:

1.А.(В.С) =(А. В).С

2. А е О = 0 е А = О

3. А е е = е е А, где е = л '," * л'„" е ... е л'„",, гп > 0

4. (А Оч- В) Оч- С = А О (В Оч- С)

5.(А»В)»С=А ' (В»С)

б. (А -+ В) -+ С = А -+ (В -э С)

7,А» О =бе А= О

8. А — э 0 = О -+ Л == О

9.АОч- О = ООч- А = 0

10.А — + А =А

11. А е (В ОЧ. С) = А е В ОЧ- А е С

12. (В Оч- С) е Л = В е А Оч- С е Л

13. А — э (В Оч- С) = А -+ В Оь А — х С

14. (В Оч- С) — э А =  — э А Оь С -+ А

15. А е (В Оч- С) = А е В Оч- А е С

! б, (В О» С) е А = В е А Оч- С е А

17 Ае( — эС) =А»  — эА»С

18,(А — эВ) »С =А — >В еС

20.(А~'"''ч' » А~в»з~) е(л"+"з е В »лч'"з е В,) =А е В »А, ° В,.

При доказательстве эквивалентности схем используется правило замены:

А=В

, где [Х/У~У обозначает результат замены вхождения схемы т' в

[А, (3)С = [В113]С '

схему 2 на схему Х.

Свойство ортогональности функций А и В имеет место, если А — э В =О. Для ортогональных схем А и В верна также эквивалентность А е В = О, которая может рассматриваться как другой способ формального определения ортогональности. Предполагается, что функция О ортогональна по отношению к любой другой функции. Конструктивно отношение ортогональности можно определить в языке, включив в множество базисных функций некоторое подмножество базисных ортогональных функций, обозначая (' и Г базисную функцию (' и ортогональную к ней функцию 1, Ясно, что предикаты р и р могут рассматриваться как о)этогональные функции, если значение аложьв обозначать символом неопределенно~о значения ж .

На основе этого можно определить достаточно представительный класс ортогональных функций следующим образом, Если А и  — ортогональные схемы (функции), то АеС и ВеС, Се А и С»В, А»С и В»С, С»А и С*В, А — эС и В -+ С, С вЂ” э А и С -+  — пары ортогональных схем (функций).

017

Распознанный текст из изображения:

!7

Используя дополнительно аксиомы А — + В = 6 и А а В = 6, как выражение отношения ортогональности А и В, можно упрощать схемы функций, приводя их к оптимальной форме. Однако принципиальное значение для приведения схемы функции к минимальной форме с точки зрения параллельных вычислений значений функции имеют аксиомы 17-20, при этом их правые части не более сложны, чем левые.

Рассмотрим пример следующей функциональной схемы:

Гр, -+Г )е(р, — эГ, Оч- р, ' — х1',)Оч-1р, -+(Г як,')) (я, 'Г, як',). Применяя аксиомы 11, 17, 18, 20 и правило замены, получим эквивалентную схему с минимальным временем вычисления значений сопоставляемых ей в интерпретации функций:

Р~ э Г~ ~ Р— > Г~ е Г, Оч Р~ + Г~ Я Рз -+ Г, ~ Гз Оч Р~ +1, ~ Г4.

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

Картинка-подпись
Хочешь зарабатывать на СтудИзбе больше 10к рублей в месяц? Научу бесплатно!
Начать зарабатывать

Комментарии

Поделитесь ссылкой:
Рейтинг-
0
0
0
0
0
Поделитесь ссылкой:
Сопутствующие материалы
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5120
Авторов
на СтудИзбе
445
Средний доход
с одного платного файла
Обучение Подробнее