Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы для подготовки к экзамену / Архитектура компьютеров и ВС, принципы параллельного программирования.doc
Скачиваний:
72
Добавлен:
28.06.2014
Размер:
1.26 Mб
Скачать
      1. Расширение сети Петри

1. Одновременность.

Сеть N1.

- могут сработать одновременно.

Сеть N2.

- не могут сработать одновременно, так как конкурируют за фишку.

- делают одно и то же.

1. - произошло срабатывание.

- сколько фишек у разметки в месте.

2. Множество переходов -совместны (они могут сработать одновременно), еслиIN(t) – множество всех переходных мест перехода t.

3. Разметка M в сети N конфликтна, если существуют множества переходов T1 и T2, готовых к срабатыванию, , таких, что после,T2 не является множеством совместных переходов.

Множество совместных переходов:

Бесконфликтные сети – это сети, в которых не существует конфликта разметок, на каждом шаге срабатывают все готовые переходы.

2. Сети с порождение процессов.

- программа, которая выполняется в конвейерном режиме, пока не выполнится t для x1,нельзя выполнить x2. Результаты помечаются индексами, так как они выходят не в порядке поступления.

Порождается переход

- порожденный переход уходит после выполнения.

3. Расширение: рекурсивные сети

4. Раскрашивание сети

    1. Модели взаимодействующих последовательных процессов Хоара

Введем следующие обозначения:

A – алфавит действий (актов).

- акты

Сигнатура операций:

- непосредственное следование актов.

Процесс – последовательность (в общем случае бесконечная) непосредственного следования актов.

Операции композиции:

  • условная, обозначим, как ;

  • параллельная ( );

Условная детерминированная операция:

- выбор, который зависит от того, что совершится (a или b)  P, ведет себя как P1 или P2.

Пример.

x

хотим передвинуть x.

P1 = внизу  направо  стоп 

P2 = направо  внизу  стоп 

P3 = налево  внизу  стоп

Оператор рекурсии.

- правосторонняя рекурсия

Взаимная рекурсия:

Протоколы процесса.

Протоколы процесса – последовательность свершенных актов (наблюдений), которые свершились до наступления момента.

Протоколы: <> - пустой, <a>

Протокол: <>.

Рекурсивное определение:

, где - результат одновременной подстановки вместо.

Параллельная композиция процессов.

Два процесса происходят независимо и,ждетx от , чтобы записатьx в y. Процесс замирает,не приметx.

- алфавит процессов и(могут различаться или совпадать).

Акты взаимодействий:

Аксиоматика параллельной операции композиции:

1. - коммутативность;

2. - ассоциативность;

3.

Пусть даны процессы и

4.

5.

6.

7.

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

- последовательность, полученная из t оставлением элементов алфавита A и выбрасыванием отличных от A элементов.

- любое конечное слово в алфавите .

Если - пусто, то Прот(PQ) = {tt – произвольное чередование frnjd bp }.

Если .

Дополнительные аксиомы:

1.

2.

  1. 3. Реализация параллельных языков программирования

    1. Примитивы и языки параллельного программирования

Рассматриваются два подхода:

  • процессный, что подразумевает явное задание параллелизма.

  • неявный, зависит от природы задачи и языка.

Процессные примитивы и языки.

1. Par begin O1… On end

Sim begin O1… On end

 O1 …  On.

2. fork S1, S2 join  S1 S2.

3. асинхронные оперативные схемы.

{O1… On}

Управление условия готовности «оператора» для выполнения.

[“спусковая” функция  Oi изменение переменной x, участвующей в спусковой функции].

Пример.

Динамическое управление (в условия используются переменные самой программы).

Пример.

x, y, z – целые.

- правило выполнения.

параллельная программа = <описание (денотационная семантика), правила параллельного программирования>.

    1. MPI

В первую очередь необходимо сказать, что же представляет MPI. MPI - message passing interface - библиотека функций, предназначенная для поддержки работы параллельных процессов в терминах передачи сообщений.

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

Атрибуты сообщения - номер процесса-отправителя, номер процесса-получателя и идентификатор сообщения.

Идентификатор сообщения (msgtag) - атрибут сообщения, являющийся целым неотрицательным числом, лежащим в диапазоне от 0 до 32767. Процессы объединяются в группы, могут быть вложенные группы. Внутри группы все процессы перенумерованы. С каждой группой ассоциирован свой коммуникатор. Поэтому при осуществлении пересылки необходимо указать идентификатор группы, внутри которой производится эта пересылка.