- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран 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. Язык оккам. Общая характеристика. Операторы языка оккам.
-
Непроцедурный язык Норма. Понятие сетки. Понятие области.
НОРМА - предназначен для решения систем дифференциальных уравнений в частных производных методом сеток. Норма - полностью отечественная разработка (был разработан приблизительно в конце 70-х, начале 80-х). Относится к непроцедурным языкам. Отличительной особенностью непроцедурных языков является отсутствие в программе явно описанной процедуры вычислений. Вместо этого в программе программист должен написать соотношения между входными и выходными величинами и области применения этих соотношений. Здесь транслятор понимается как препроцессор. Формирование процедур для вычислений возлагается на транслятор, который должен по написанным соотношениям определить не только прядок вычислений, но и возможность параллельного счета.
Отсюда следует, что программа на языке НОРМА, представляющая собою последовательность описаний, сначала обрабатывается специальным препроцессором, формирующим на выходе прог-у на одном из известных языков программирования (Си, Фортран, Ассемблер), которые обрабатываются стандартными трансляторами.
Прог-а на языке НОРМАпрепроцессорстандартный трансляторрабочая прог-а
В НОРМА основными понятиями являются ОБЛАСТЬ и оператор ПОЛАГАТЬ.
ДЛЯ <область> ПОЛАГАТЬ <список соотношений>
Оператор присваивания “:” служит для транслятора основой для определения порядка счета и не требует немедленного выполнения.
<описание>::<описание скалярной величины>|<описание величины, определенной на сетке>|<описание индексной конструкции>|<описание параметров сетки>|<описание входных>|<описание выходных>
Простое выражение может включать в себя только специальные величины: параметры. Все параметры должны получить своё значение.
Пространственно-временная сетка представляет совокупность целочисленных наборов, каждый из которых представляет отдельный узел сетки. Сетку можно описать, именовать и производить над ней некоторые простые операции. Сетка представляет собой векторное N-мерное пространство, в котором определены N направлений, и с каждым таким направлением связано уникальное имя (индекс направления). Любая область является некоторой ограниченной частью такой сетки.
Условные области. 2 типа условных областей: условные подобласти и предикатные подобласти. Для получения первых используются две функции, имеющие один аргумент: ЛЕВ() и ПРАВ().
Пример: SN1:S/SI ЛЕВ(2)+ПРАВ(1) необходимо вернуться к одномерным областям.
→формируется условная подоблость SN1, получаемая из области S путем исключения из составляющей области SI слева двух точек и добавления справа одной точки.
Предикатная подобласть получается из исходной области включением в нее точек, для которых лог. выражение над заданными в узлах сетки переменными истинно.
Пример: Если S: (S1: (I=2…N) ; S2: (Y=1…M))
SA, SB : S/X + Y[I,J] – Z[J+1] > 0 (для SA – истина, SB – ложно)
В этом примере описываются две предикатные подобласти SA и SB. Переменные X, Y и Z должны быть заданы в узлах сетки. К подобласти SA относятся те узлы области S, для которых выполняется указанное неравенство. К подобласти SB относятся все остальные узлы. Очевидно, что SA SB = 0 и SA SB = S