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

advertisement
Динамические
потоковые
вычислительные
системы
Альперин Борис, 12226
Статическая
dataflow-архитектура
• Каждый вычислительный узел представлен в
единственном экземпляре
• Число узлов заранее известно
• Число токенов заранее известно
• Реализация - MIT Static Dataflow Machine (1974)
Динамическая
dataflow-архитектура
• Каждый узел может иметь множество экземпляров
• Для различения экземпляров токена вводится новое
поле – контекст
Новые возможности:
• Рекурсия – узел может направлять токен в свою копию
• Поддержка процедур
• Распараллеливание циклов. Контекст – номер итерации
Пример 1 – числа Фиббоначи
int fib [MAX_I];
fib [0] = 1; fib [1] = 1;
for (i = 2; i < MAX_I; i++) {
fib [i] = fib [i-1] + fib [i-2];
}
Пример 1 – числа Фиббоначи
узел fib (входы: токен A, токен B)
переменная i = поле_контекста(A);
переменная result = поле_данных(A) + поле_данных(B);
отправить_токен (данное: result, метка: host, контекст: i);
если (i < MAX_I-1)
отправить_токен (данное: result, метка: fib, контекст: i+1);
отправить_токен (данное: result, метка: fib, контекст: i+2);
конец если
конец узел fib
Пример 2 – сложение матриц
Гибридные dataflow-архитектуры
Недостатки классических dataflow-систем:
• На последовательных участках графа резкое падение
производительности
• Загрузка исполнительных устройств далека от
максимально возможной
• Сложно конструировать устройства сопоставления
• Нельзя организовать эффективный конвейер
• Значительно выше нагрузка на коммутационную сеть
Гибридные dataflow-архитектуры
• Threaded dataflow – последовательные участки
графа заменить тредами
• Крупнозернистые потоковые архитектуры –
построение графа не из операторов, а из блоков
• Векторная dataflow-архитектура
• Реконфигурируемые системы
Спасибо за
внимание
Download