- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран hpf. Общая характеристика.
- •Задача предотвращения тупиков. Алгоритм банкира.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Задача предотвращения тупиков. Алгоритм упорядоченных классов.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Конструктор массивов в языке Фортран 90.
- •Непроцедурный язык Норма. Понятие сетки. Понятие области.
- •Оператор полагать в языке норма.
- •Операторы языка Фортран 90
- •Операции над массивами в языке Фортран 90.
- •Организация ввода и вывода в языке норма.
- •Понятия критического ресурса и критической секции.
- •Проблема «Производитель-потребитель». Общие семафоры.
- •Проблема взаимных блокировок (тупиков).
- •Программирование пространственно-временных структур на языке оккам.
- •Секции массивов в языке фортран 90.
- •19. Система программирования pvm (Parallel Virtual Machine).
- •20. Система параллельного программирования dvm(Distributed Virtual Machine).
- •21. Система параллельного программирования mpi.
- •22. Структура программы на языке норма. Оператор итерация.
- •23. Условные области в языке норма.
- •24. Язык фортран 90. Общая характеристика.
- •25,26. Язык оккам. Общая характеристика. Операторы языка оккам.
-
Оператор полагать в языке норма.
В НОРМА основными понятиями являются ОБЛАСТЬ и оператор ПОЛАГАТЬ.
<ПОЛАГАТЬ>::=ДЛЯ <область> ПОЛАГАТЬ <список соотношений >
Этот оператора отличается от обычного оператора присваивания тем, что не требует немедленного присвоения значений переменным, указанным в списке соотношений.
При обработке оператора транслятор анализирует список соотношений для каждого узла области, определяет порядок вычислений и возможность параллельного счета.
Пример 1:
S: (1..M) – область «S»
S1: S / S-ЛЕВ(1) – подобласть «S1»
ДЛЯ S1 ПОЛАГАТЬ X[I]=X[I-1]+X[I+1]
В этом примере может быть реализован только последовательный счет.
Пример 2:
Пусть 1 ≤ i ,j ≤ 7
Xi,j = fx (Xi-1,j+1, Yi-1,j+2)
Yi,j = fy (Xi+1,j-1, Yi+3,j-1)
Для второго примера можно составить две таблицы:
X
i
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
7 |
6 |
4 |
4 |
4 |
3 |
1 |
8 |
8 |
7 |
6 |
5 |
5 |
1 |
10 |
9 |
9 |
8 |
7 |
6 |
1 |
12 |
11 |
10 |
10 |
9 |
8 |
1 |
4 |
13 |
12 |
11 |
11 |
10 |
Y
i
6 |
5 |
3 |
3 |
3 |
1 |
1 |
7 |
7 |
5 |
5 |
4 |
1 |
1 |
9 |
8 |
7 |
6 |
6 |
1 |
1 |
11 |
10 |
9 |
8 |
7 |
1 |
1 |
13 |
12 |
11 |
10 |
9 |
1 |
1 |
14 |
13 |
13 |
12 |
11 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
В этих таблицах в каждой клетке записан номер шага, на котором можно вычислять значения соответствующих переменных. Сначала заполняются все клетки таблиц, соответствующие первому шагу вычислений, затем второму и т.д., пока не будут заполнены все таблицы. Из таблиц следует то, что возможно организовать параллельный счет, однако не наблюдается никакой регулярности перехода от одного шага к другому, что не дает возможности транслятору сгенерировать процедуру для регулярного счета. Транслятор с языка НОРМА изменяет содержание этих таблиц за счет увеличения общего числа шагов и организует параллельный регулярный счет.
X
i
7 |
6 |
5 |
4 |
3 |
2 |
1 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
Y
i
8 |
7 |
6 |
5 |
4 |
3 |
2 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
В этих таблицах показана возможность регулярного счета для элементов, лежащих на одной прямой (7-7-7). Наклон этих прямых одинаков для первой и второй таблицы, причем вычисление Х опережает вычисление для величины Y. Задача поиска уравнений прямых сходна с методом гиперплоскостей, однако здесь вычисление отдельных величин может «рассыпаться» по нескольким плоскостям. Т.о. метод гиперплоскостей → частный случай метода, реализованного на языке НОРМА.