План лекции.
1. Вычислительная модель потоковой обработки.
2. Архитектура потоковых вычислительных систем.
3. Статические потоковые вычислительные системы.
4. Динамические потоковые вычислительные системы.
5. Архитектура потоковых систем с помеченными токенами.
6. Архитектура потоковых систем с явно адресуемыми токенами.
7. Макропотоковые вычислительные системы.
8. Гиперпотоковая обработка.
9. Вычислительные системы с управлением вычислениями по запросу.
В традиционных многопроцессорных системах одновременно могут выпол-няться несколько командных последовательностей в естественном порядке, то есть в порядке размещения каждой из них в памяти. Это обеспечивается нали- чием в каждом процессоре счетчика команд. Выполнение команд в каждом про-цессоре – поочередное и потому достаточно медленное. Для получения выигры-ша программист или компилятор должны определить независимые команды, которые могут быть поданы на отдельные процессоры, причем так, чтобы ком-муникационные издержки были не слишком велики.
Традиционные фон-неймановские ВС, управляемые с помощью программ-ного счетчика, называются вычислительными системами, управляемыми после-довательностью команд (control flow computer). Если программа, состоящая из команд, хранится в памяти, то возможны следующие альтернативные механиз- мы ее исполнения:
§ команда выполняется после того, как выполнена предшествующая ей ко-манда последовательности;
§ команда выполняется, когда становятся доступны ее операнды;
§ команда выполняется, когда другим командам требуется результат ее вы-полнения.
Первый метод соответствует традиционному механизму с управлением по-следовательностью команд; второй механизм известен как управляемый данными (data driven) или потоковый (dataflow); третий метод называется механизмом управления по запросу (demand driven).
Рис. 14.1. Возможные вычислительные модели: а – фон-неймановская; б – потоковая; в – макропотоковая; г – редукционная
Общие идеи нетрадиционных подходов к организации вычислительного процесса показаны на рис. 14.1.