Скачать презентацию Параллельные алгоритмы Последовательные алгоритмы Алгоритмы в которых Скачать презентацию Параллельные алгоритмы Последовательные алгоритмы Алгоритмы в которых

Леция- 2(Т1).ppt

  • Количество слайдов: 18

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

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

# include <stdio> # include <math. h> void main(void) { double x, y, z; # include # include void main(void) { double x, y, z; double z 1, z 2 ; scanf(“%e 5 en”, &x, &y) ; z 1=sin(x); z 2=cos(y); z=z 1+z 2 ; printf(“%en, z); } Параметр начала tjн оператора Рj - это значение дискретного времени, соответствующее моменту начала выполнения оператора Рj Р. Ти п 0 c = tj 2. 0 + sin 1. 0 os 2. 0 v var sto p x 2. 0 v ix 1. 2. 0 1. 0 Временная глубина tj 0 оператора Рj - характеризует временную задержку между началом выполнения оператора Рj Р и моментом tjк получения результатов выполняемого преобразования

Интервал оператора. активности Определим для произвольного одновыходного (kjвых= 1) оператора Рj Р с параметрами Интервал оператора. активности Определим для произвольного одновыходного (kjвых= 1) оператора Рj Р с параметрами tjн и tjк интервал активности dtj как временной интервал, началом которого является момент времени tjн и концом которого является момент времени tjк завершения выполнения оператора Рj dtj = ( tjн , tjн +td, tjн +2 td, . . . , tjк ) , где td – выбранное значение приращения дискретного модельного времени. В последующем будем называть произвольный оператор Р j временным оператором (ВО) и обозначать Рj (t) , если для него определены ( tjн , tjк ), либо (tjн , T 0(Рj )) или интервал активности dtj

Временная параметризация множества операторов алгоритма. Примем, что задано множество Р = {Pj }, j Временная параметризация множества операторов алгоритма. Примем, что задано множество Р = {Pj }, j =0, 1, 2, . . . , р ( р =| P |) операторов некоторого алгоритма. Формирование для множества Р = {Pj } соответствующего множества Р (t) временных операторов Pj (tjн , tjк ) Р (t) = {Pj ( tjн , tjк )}, где j = 0, 1, 2, . . . , p , назовем временной параметризацией исходного множества Р = {Pj }. Введем множество NT = { tjн } параметров начала выполнения операторов алгоритма. Будем называть исходное множество Р = {Pj } абстрактным множеством операторов, а множество Р (t) временных операторов Множественный временной оператор. Примем, что имеются множества Pj ( t н , tjк н t к )} и/или Р (t) = {Р ( t н , j T 0(Р ) – параметризованным во Р (t) = {Рj (tj , j j j )}. Назовем множественным времени множеством операторов. временным оператором (МВО) подмножество Р (tjr ) Р (t ) операторов Рj (tjн) , имеющих одно и то же значение tjн = tjr (tjr NT) и, следовательно, начинающих выполняться одновременно в момент времени tjr.

Параллельный алгоритм Определим параллельный алгоритм как временной алгоритм, в котором имеется хотя бы одна Параллельный алгоритм Определим параллельный алгоритм как временной алгоритм, в котором имеется хотя бы одна пара операторов Рj (tjн , tjк ) и Рi (tiн, tiк ) c частично или полностью перекрывающимися интервалами активности dtj и dti , для которых выполняется условие dtj dti Последовательный алгоритм Определим последовательный алгоритм как временной алгоритм, имеющий единичное значение ширины h = 1.

ПРОИЗВОЛЬНЫЙ ВРЕМЕННОЙ ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ Си-программы, представляющих текстовую и графическую спецификации статического алгоритма Множество Тн ПРОИЗВОЛЬНЫЙ ВРЕМЕННОЙ ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ Си-программы, представляющих текстовую и графическую спецификации статического алгоритма Множество Тн = {tjн} , j = 0, 1, 2, …, p , определяющего для каждого временного оператора параметр tjн начала его выполнения

Uj Pj Kjвх Kjвых Временная Параллельная Граф - Схема для временного алгоритма А -конструкция Uj Pj Kjвх Kjвых Временная Параллельная Граф - Схема для временного алгоритма А -конструкция Г (t) = (D , U , C , Y), содержащая множество U = {Uj} вершин, множество С = {Ci} стрелок (связей), множество прямых – временных ярусов Y = {Yt}, отмеченных значениями дискретного времени t , удовлетворяющую следующим условиям: • имеется взаимно однозначное соответствие между вершинами Uj и операторами Pj Uj Pj , ( j = 0, 1, 2, . . . , p ; р = | P |) ; • если вершине Uj поставлен во взаимно однозначное соответствие оператор Рj функционального, временного, пространственного или комбинированного преобразования, то из данной вершины Uj исходят kjвых стрелок (kjвых - число выходов оператора Рj) и в данную вершину Uj входят kjвх стрелок ( kjвх -число входов оператора Рj);

Lj Kjвх if . . Kjвых Pj Wj Sj Y MBO U(t. H) t. Lj Kjвх if . . Kjвых Pj Wj Sj Y MBO U(t. H) t. H • если вершине Uj поставлен во взаимно однозначное соответствие условный управляющий оператор Lj , проверяющий (в общем случае) выполнение одного из m логических условий, то из данной вершины Uj исходят m стрелок и в данную вершину Uj входят kjвх стрелок ( kjвх-число входов оператора Lj); • связи между вершинами конструкции Г (t) = (D , U , C , Y), определяются заданными для множества Р = {Pj } операторов алгоритма А = ( D , Р(t ), S , W , DТ )) сопряженным S и внешним W множествами; • все вершины Uj ВПГС Г (t) = (D , U , C , Y), поставленные во взаимно однозначное соответствие временным операторам Рj (tjн , tjк ) Р(t ) алгоритма А = ( D , Р(t), S , W , DТ )), имеющим значение параметра начала tjн = tн и образующим множественный временной оператор (МВО) Р (tн ) , расположены на временном ярусе Y со значением дискретного времени t = tн и образуют МВО U (tн ) ВПГС Г (t) = (D , U , C , Y ).

Ранг временного оператора Для произвольного временного оператора Рj ВПГС Г(t) понятие ранга rj определяется Ранг временного оператора Для произвольного временного оператора Рj ВПГС Г(t) понятие ранга rj определяется следующим образом: а) ранг rj = tj 0 при Wj = (случай оператора Рj , являющегося выходным оператором алгоритма); б) rj = max (rλ + tj 0 ) , если Wj (случай, когда оператор Рj представляет собой Pλ Wj внутренний оператор алгоритма, обеспечивающий формирование промежуточного результата, используемого другими, внешними по отношению к Рj , операторами Рλ алгоритма). С содержательной точки зрения ранг rj оператора Рj задает максимальное значение времени от момента начала tjн выполнения оператора Рj до завершения решения задачи (то есть временную длину соответствующего маршрута в ВПГС Г (t)).

Частный приоритет bj временного оператора Рj (в рамках отдельного алгоритма) [1, 2 ]: а) Частный приоритет bj временного оператора Рj (в рамках отдельного алгоритма) [1, 2 ]: а) bjδ = 1 при rj = max ri и ri < rj при i≠j; Pi Pδ б) bjδ < biδ при rj = ri и tj 0 < ti 0 ; в) bjδ < biδ при rj = ri , tj 0 = ti 0 и |Wj | > |Wi | ; г) bjδ < biδ при rj = ri , tj 0 = ti 0 и |Wj | = |Wi | , но i < j. Общие приоритеты dj операторов Рj различных алгоритмов будем определять следующим образом dj = bjδ + max (biν), если jδ > min jν , ν Mδ P i P δ ν=1. . . κα dj = bjδ , если jδ = min jν. В последнем соотношении Мδ - множество номеров ν (ν 1. . . κ) алгоритмов, имеющих более высокие приоритеты baν по сравнению с приоритетом baδ рассматриваемого алгоритма, Рδ - множество операторов, относящихся к алгоритму с номером δ, имеющему приоритет f δ.

Си – программа циклического алгоритма void main(void) { int s, r ; int i, Си – программа циклического алгоритма void main(void) { int s, r ; int i, p, q, t, k ; scanf ( “%d %dn “, &s , &r ) ; for (i=1; i<=20; i++) { s = s + 1 ; r = (r + 1) % 2 ; p = s * r ; q = s + r ; t = r – p ; } k = (t * q) / 10 ; } Таблица. Значения времени tj 0 выполнения операторов (в тактах) Тип vx /, % co n bp l. o a. o * <= upl +, ++ bpv = var tj 0 1. 0 35. 0 10. 0 3. 0 1. 0 2. 0 1. 0

Файлы, задающие граф задачи на уровне операторов Файлы, задающие граф задачи на уровне операторов

ВПГС циклической Си-программы ВПГС циклической Си-программы

ЛИТЕРАТУРА 1. Поляков Г. А. , Умрихин Ю. Д. Автоматизация проектирования сложных цифровых систем ЛИТЕРАТУРА 1. Поляков Г. А. , Умрихин Ю. Д. Автоматизация проектирования сложных цифровых систем коммутации и управления. - М. : Радио и связь, 1988. - 304 с. 2. Воеводин В. В. , Воеводин Вл. В. Параллельные вычисления. – СПб. : БХВ-Петербург, 2002. – 608 с. 3. Новиков Ф. А. Дискретная математика для программистов: Учебник для вузов. 3 -е изд. - СПб. : Питер, 2008. - 384 с.