ВУЗ:
Составители:
В общем случае этот ГПД можно представить в виде списочной структуры. Элемент
такого списка определяется шаблоном:
Т=(О
р
, С, R
1
, …, R
n
, D
1
, …, D
m
),
где О
р
– обозначают примитивную операцию (команду); С – условие срабатывания вершины
ГПД; R
1
, …, R
n
– поля операндов, заполняемые по мере выполнения предшествующих
операций (предшествующих вершин в ГПД); эти операнды могут использоваться для
определения условий срабатывания спусковой функции С; D
1
, …, D
m
– поля значений,
указывающие какому шаблону должен быть передан результат выполнения операции О
р
.
Программу для потоковых машин можно рассматривать как совокупность командных
шаблонов, последовательность реализации которых определяется в момент получения
результатов выполнения операций на предыдущем шаге. При наличии достаточного
количества процессорных элементов одновременно могут обрабатываться произвольное
число готовых к исполнению операций. Параллелизм в машинах потоков данных не задается
явно, а выявляется в процессе исполнения. Другой особенностью потоковых машин является
то, что в них реализуется механизм передачи операндов по значению. Механизм вызова
операнда по значению предполагает непосредственную передачу отдельных копий
полученного значения во все команды, в которых он будет использован. Рассылка операндов
при этом осуществляется в виде сообщений, каждое из которых имеет начало, конец, адрес
получателя и, собственно, результат операции. При обмене сообщениями отсутствует
совместно используемое общее поле памяти, что приводит к упрощению синхронизации и
уменьшению числа ошибок при программировании.
В ЭВМ с редукционно-программным управлением стимулом начала операции
является потребность в результате ее выполнения, т.е. выполнение команд в
последовательности, определяемых запросами операндов.
О
р1
I
1
I
2
О
р2
I
3
I
4
О
р3
R
3
R
1
=I
5
R
2
=I
6
Рис.5.12. Информационный граф
Рассмотрим пример. Имеется алгоритм, который представлен в виде графа на
рис.5.12. Здесь {I} – множество входных операндов, {R} – множество выходных результатов,
множеству вершин {O
p
} представлены в соответствие простые операторы. Предположим,
что возникла необходимость в получении результата R
3
, т.е. сформирован "запрос R
3
". Этот
запрос используется для вызова оператора О
р3
, но он не может быть выполнен из-за
отсутствия операндов I
5
=R
1
и I
6
=R
2.
В этом случае автоматически порождаются два новых
запроса: "запрос R
1
" и "запрос R
2
". Процесс порождения запросов будет продолжаться до тех
пор, пока не будет встречен оператор, готовый к выполнению. По выполнению этого
оператора происходит замена его своим результатом, который передается по обратному
пути, обеспечивая возможность реализации всех предыдущих запросов более высокого
уровня. Такой способ управления вычислениями получил название управление потоком
запросов, он хорошо отражает особенность параллельной обработки и позволяет
контролировать число порождаемых параллельных процессов.
В общем случае этот ГПД можно представить в виде списочной структуры. Элемент такого списка определяется шаблоном: Т=(Ор, С, R1, …, Rn, D1, …, Dm), где Ор – обозначают примитивную операцию (команду); С – условие срабатывания вершины ГПД; R1, …, Rn – поля операндов, заполняемые по мере выполнения предшествующих операций (предшествующих вершин в ГПД); эти операнды могут использоваться для определения условий срабатывания спусковой функции С; D1, …, Dm – поля значений, указывающие какому шаблону должен быть передан результат выполнения операции Ор. Программу для потоковых машин можно рассматривать как совокупность командных шаблонов, последовательность реализации которых определяется в момент получения результатов выполнения операций на предыдущем шаге. При наличии достаточного количества процессорных элементов одновременно могут обрабатываться произвольное число готовых к исполнению операций. Параллелизм в машинах потоков данных не задается явно, а выявляется в процессе исполнения. Другой особенностью потоковых машин является то, что в них реализуется механизм передачи операндов по значению. Механизм вызова операнда по значению предполагает непосредственную передачу отдельных копий полученного значения во все команды, в которых он будет использован. Рассылка операндов при этом осуществляется в виде сообщений, каждое из которых имеет начало, конец, адрес получателя и, собственно, результат операции. При обмене сообщениями отсутствует совместно используемое общее поле памяти, что приводит к упрощению синхронизации и уменьшению числа ошибок при программировании. В ЭВМ с редукционно-программным управлением стимулом начала операции является потребность в результате ее выполнения, т.е. выполнение команд в последовательности, определяемых запросами операндов. I1 I2 I3 I4 Ор1 Ор2 R1=I5 R2=I6 Ор3 R3 Рис.5.12. Информационный граф Рассмотрим пример. Имеется алгоритм, который представлен в виде графа на рис.5.12. Здесь {I} – множество входных операндов, {R} – множество выходных результатов, множеству вершин {Op} представлены в соответствие простые операторы. Предположим, что возникла необходимость в получении результата R3, т.е. сформирован "запрос R3". Этот запрос используется для вызова оператора Ор3, но он не может быть выполнен из-за отсутствия операндов I5=R1 и I6=R2. В этом случае автоматически порождаются два новых запроса: "запрос R1" и "запрос R2". Процесс порождения запросов будет продолжаться до тех пор, пока не будет встречен оператор, готовый к выполнению. По выполнению этого оператора происходит замена его своим результатом, который передается по обратному пути, обеспечивая возможность реализации всех предыдущих запросов более высокого уровня. Такой способ управления вычислениями получил название управление потоком запросов, он хорошо отражает особенность параллельной обработки и позволяет контролировать число порождаемых параллельных процессов.
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »