Архитектура компьютеров и ВС, принципы параллельного программирования (Файлы для подготовки к экзамену), страница 5
Описание файла
Файл "Архитектура компьютеров и ВС, принципы параллельного программирования" внутри архива находится в папке "Файлы для подготовки к экзамену". Документ из архива "Файлы для подготовки к экзамену", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Онлайн просмотр документа "Архитектура компьютеров и ВС, принципы параллельного программирования"
Текст 5 страницы из документа "Архитектура компьютеров и ВС, принципы параллельного программирования"
Для упрощения график функции обозначается тем же символом, что и сама функция; , , – обозначение кортежей.
Все операции композиции являются бинарными, и их определение дается в инфиксной форме.
-
Последовательная композиция ()
-
Конкатенация ()
-
Объединение ()
Для того чтобы сохранялось свойство функциональности для f операция (отдавая дань предыстории, мы используем вместо общепринятого обозначения операции теоретико-множественного объединения знак ) должна применяться только к совместным или ортогональным функциям.
Функции f1 и f2 совместны тогда и только тогда, когда
функции f1 и f2 ортогональны, если они совместны и не существует кортежей 1 и 2 таких, что (, 1)f1 и (, 2)f2 для всякого .
Далее мы покажем, как использование конструкторов (функций), вводимых при задании данных, позволяет (через понятие деструктора) строить ортогональные функции.
Аппликация функции f, определенной посредством операции , теперь имеет следующую семантику: f(x) = f1(x) или f(x) = f2(x), т.е. одному из значений f1(x) или f2(x), которое определено; если значение f1(x) и f2(x) оба не определены, f(x) также не определено.
-
Условие ()
; ; , если значение f1(x) определено.
Заметим, что первые две операции композиции позволяют выразить известный оператор подстановки, используемый в языке рекурсивных функций и в обычной математической нотации:
где g – m-арная, а f1, f2, …, fm – n-арные заданные функции; .
Через две другие операции композиции легко представляется условный оператор языков программирования или задание функции путем разбора случаев, используемое в обычной математической практике:
. Здесь , , …, – попарно ортогональные пропозициональные функции, представляющие p1, p2, …, pn. При этом значение «ложь» для pi(x), i = 1, 2, …, n, можно трактовать как неопределенное значение для , причем это неопределенное значение является вычислимым и в описываемом далее языке представляется явно в виде обозначения . Значение «истина» для pi(x) совпадает со значением .
Ясно, что значение функции может быть также не определено, если процесс его вычисления длится неограниченно. Мы различаем эти оба случая неопределенного значения, причем, если в результате вычисления значения функции получено неопределенное значение , мы можем существенно повысить эффективность при распараллеливании. Так в последнем примере при вычислении значения f(x) возможно одновременное вычисление всех значение pi(x) и fi(x), i = 1, 2, …, n, но получив в результате pi(x) = для некоторого i мы можем прервать начатое вычисление fi(x), которое уже не может повлиять на результат.
Заметим, что операции композиции , , ассоциативны, – ассоциативна и коммутативна. Введение следующего старшинства для операций композиции: , , , позволит в дальнейшем опускать некоторые скобки в задании функций.
С вычислительной точки зрения, только операция является последовательной, остальные операции композиции параллельны.
-
Определение функций через систему функциональных уравнений.
Пусть F1, F2, …, Fn – символы типизированных функциональных переменных, 1, 2, …, n – формы или термы, представляющие конечные композиции этих переменных и базисных функций f1, f2, …, fm, m0, относительно введенных операций композиции функций.
Синтаксически оператор наименьшей фиксированной точки, как способ композиции функций f1, f2, …, fm, определяется как система функциональных уравнений
() Fi = i, i = 1, 2, …, n, где Fi – связанные в этом определении функциональные переменные.
В интерпретации () задает первый компонент кортежа функций … , являющегося наименьшим (в смысле включения графиков) решением для ():
Здесь – результат одновременной подстановки Aj вместо переменной Xj, j = 1, 2, …, k, в C.
Известно [7], что операции , , и монотонны и, более того, непрерывны относительно своих аргументов и, как следствие, значения , i = 1, 2, …, n, всегда существуют и могут быть выражены явно: , i = 1, 2, …, n, где – нигде не определенная функция, а для k>0, .
Отметим, что в системе уравнений () во всех термах i, i = 1, 2, …, n, должно быть выполнено согласование типов для используемых операций композиции, и тип каждой функциональной переменной Fi должен совпадать с типом i, i = 1, 2, …, n.
Введенные операции и оператор наименьшей фиксированной точки универсальны, потому что они не зависят от типов функций, к которым применяются, и потому, что при правильном выборе множества базисных функций они позволяют представлять любую вычислимую функцию.
Представление функции, в котором рассматривается только композиционная ее структура с точностью до введенных операций композиции, т.е. без задания интерпретации базисных функций, называется схемой. Схема как самостоятельный элемент в задании функции, наглядно отражает ее композиционную структуру и упрощает ее анализ. Именно схема функции является основой построения асинхронной модели вычисления значений функций.
3.4.1.2. Задание данных и базисных функций
Данные в общем случае представляют собой множества кортежей одинаковой длины. С теоретической точки зрения, данные в языке представляются как (0, m)-арные, m0, d-отношения. Определение данных осуществляется путем замыкания операций композиции , , , и оператора наименьшей фиксированной точки над непустым множеством конструкторов. Каждое определяемое множество данных относится к определенному типу данных, который характеризуется в некотором смысле и общей структурой построения этого множества и используемыми при этом конструкторами. Идентификация типа данных осуществляется путем однозначного сопоставления ему имени.
Отметим, что операция на данных (при определении абстрактных типов данных, которые представляются как (0, m)-арные d-отношения), равносильна операции декартова произведения; операция по-прежнему имеет интерпретацию теоретико-множественного объединения.
Пусть – множество символов конструкторов и – множество символов парных им деструкторов. С каждым конструктором сi и деструктором связана их арность: (ni, 1) и (1, ni) соответственно.
Конструкторы и деструкторы интерпретируются как функциональные d-отношения на эрбрановском универсуме – индуктивном классе DC:
-
если арность ci есть (0, 1), то ciDC;
-
если ci имеет арность (ni, 1), ni>0, то ci12…nDC1 для любых iDC, i = 1, 2, …, ni;
-
других элементов, кроме определенных в п. 1 и 2 в DC нет.
Введем интерпретацию конструкторов:
Легко видеть, что конструкторы – всюду определенные функции на DC, а деструкторы в общем случае – частичные функции, обратные функциям, сопоставляемым конструкторам.
Множество DC представимо в языке в виде наименьшей фиксированной точки реляционного уравнения:
Более того, можно расширить сигнатуру операций композиции d-отношений путем добавления к ней унарной операции взятия обратного отношения:
Рассмотрим множество базисных функций , где INT – натуральный ряд чисел, m>0, 1im, .
Можно показать, что на DC теперь выразима любая вычислимая функция при условии, что C содержит хотя бы один (0, 1)-арный конструктор и хотя бы один (m, 1)-арный конструктор для m>0.
В частности, в языке с этой сигнатурой операций и этим множеством базисных функций выразимы все комбинаторные d-отношения из [7]. В качестве примера приведем здесь некоторые из них:
> (функция-нуллификатор): , где (ni, 1) – арность конструктора ci;
> (функция равенства или на DC – тождества кортежей длины n):
(первое уравнение говорит о том, что кортежи равны, если равны их соответствующие элементы; второе уравнение утверждает, что два элемента множества DC равны, если они тождественны);
>/– (функция неравенства кортежей длины n):
Эти функции имеют интерпретацию:
для n = 0 график первых трех функций есть {((, ()}, у последней он пуст.
Аналогично можно определить комбинаторное функциональное d-отношение:
Определимость в языке функции > позволяет исключить операцию композиции функций (условие), как зависящую операцию: = >.
Кроме того, операция взятия обратного отношения становится конструктивной и для всякого определения d-отношения может быть «опущена» на уровень базисных функций путем использования следующих правил [7]:
(> ), где 1 и 2 имеют арности (n, n1) и (n, n2) соответственно.
-
Пусть Xi = i, i = 1, 2, …, k; обратным для X1 (не нарушая общности, положим, что в этой системе уравнений нас интересует X1) является наименьшее решение для системы уравнений , i = 1, 2, …, k, где .
Введение понятия конструктора и деструктора служит основой для построения ортогональных функций на абстрактных типах данных.