Введение
Глава 1. Обзор языков и технологий программирования для кластеров и графических процессоров 11
1.1 Разработанное расширение DVM-модели 12
1.1.1 Организация вычислений, спецификации потоков данных 13
1.1.2 Управление отгружаемыми данными, актуальностью 16
1.1.3 Пример программы на языке Фортран-DVMH 17
1.2 Обзор высокоуровневых моделей программирования для ускорителей20
Глава 2. Схема построения компилятора с языка Фортран-DVMH 24
2.1 Схема работы компилятора с языка Фортран-DVMH 24
2.2 Основные функции системы поддержки выполнения DVMH-программ 26
Глава 3. Алгоритмы учета актуального состояния переменных при выполнении DVMH-программ 28
3.1 Способы управления перемещениями данных на ускоритель и обратно 28
3.1.1 Ручное копирование 29
3.1.2 Указание входных и выходных данных для фрагментов программы 29
3.2 Недостатки ручного копирования 29
3.3 Определения терминов и базовых операций 31
3.4 Алгоритмы учета состояния актуальности переменных 33
3.4.1 Обработка входа в вычислительный регион 35
3.4.2 Обработка запроса актуализации 36
3.4.3 Обработка указания SHADOW RENEW 37
3.4.4 Обработка указания REMOTE ACCESS 38
3.4.5 Обработка указания CONSISTENT 39
Глава 4. Режимы распределения данных и вычислений между вычислительными устройствами 40
4.1 Схема выполнения DVMH-программы 41
4.2 Режимы распределения данных и вычислений 42
4.2.1 Простой статический режим 43
4.2.2 Динамический режим с подбором распределения 44
4.2.3 Динамический режим с использованием подобранной схемы распределения 50
Глава 5. Алгоритм распределения подзадач между узлами кластера 52
5.1 Формализация постановки задачи 52
5.1 Эвристический алгоритм распределения подзадач 53
5.2 Способы применения предложенного алгоритма 55
Глава 6. Дополнительные возможности по функциональной отладке и отладке производительности 57
6.1 Сравнение при завершении региона 58
6.2 Сравнение при входе в регион и при выполнении запроса актуализации 60
6.3 Возможности по отладке производительности 61
Глава 7. Приложения и тесты, разработанные c использованием языка Фортран-DVMH 63
7.1 Приложения, демонстрирующие применимость языка Фортран-DVMH
63
7.1.1 Каверна 64
7.1.2 Контейнер 65
7.1.3 Состояния кубитов 67
7.1.4 Кристаллизация 3D 68
7.1.5 Спекание 2D 69
7.1.6 Спекание 3D 70
7.2 Тесты на производительность из набора NASA NPB 71
Заключение 73
Литература 74


