Введение
1. Анализ проблемы организации мобильных параллельных вычислений
1.1. Анализ существующих языков и систем параллельного программирования
1.2. Анализ существующих систем автоматического и полуавтоматического распараллеливания последовательных программ
1.3. Анализ формальных моделей данных, алгоритмов и программ
1.3.1. Модель алгоритма 22
1.3.2. Модель программы 25
1.4. Анализ существующих алгоритмов и методов распараллеливания последовательных программ
1.4.1. Методы и алгоритмы, используемые на стадии анализа последовательной программы
1.4.2. Методы и алгоритмы, используемые на стадии синтеза параллельной версии программы
1.5. Анализ существующих способов организации мобильных вычислений 43
1.5.1. Достижение переносимости на уровне ЯВУ 44
1.5.2. Переносимость в пределах заданной ОС 46
1.5.3. Архитектура ВС и обеспечение переносимости ПО 48
1.5.4. Использование промежуточного представления и абстрактной вычислительной машины
2. Модель параллельного промежуточного кода и алгоритмы преобразования исходных текстов последовательных программ в промежуточный код
2.1. Модель типов данных 56
2.1.1. Элементарный тип данных 58
2.1.2. Составной тип данных 65
2.2. Модель операций 72
2.2.1. Семантика операций над данными 73
2.2.2. Семантика управляющих операций 74
2.3. Модель параллельного промежуточного представления 87
2.3.1. Разработка алгоритма исключения оператора break из программы 91
2.3.2. Разработка алгоритма исключения оператора continue из программы
2.3.3. Разработка алгоритма выделения регионов на основе управляющей структуры программы
2.4. Модель параллельного промежуточного кода 98
2.4.1. Выявление параллелизма между регионами параллельного промежуточного кода
3. Синтез параллельных программ на основепараллельного промежуточного кода
3.1. Модель операционной системы как среды функционирования парал- 108
дельных процессов
3.1.1. Алгебраическая модель подсистемы управления процессами ОС
3.1.2. Автоматная сеть как модель параллельного вычислительного процесса
3.2. Статический синтез параллельной реализации последовательной программы для мультипроцессорной вычислительной системы с общей памя
тью
3.2.1. Разработка алгоритма статического синтеза параллельной программы
3.2.2. Разработка алгоритма отображения параллельной программы на модель операционной среды
3.2.3. Уточнение длительности исполнения параллельных регионов программы в условиях неопределенности
3.2.4. Расчет величины уточняющей задержки на основе предварительных статистических испытаний
3.3. Динамический синтез параллельной реализации последовательной программы для мультипроцессорной вычислительной системы с общей памя тью
3.3.1. Использование метода спекулятивной многопоточиости для динамического распараллеливания последовательных программ
3.3.2. Расчет характеристик использования метода спекулятивной мно-гопоточности для динамического распараллеливания циклов
3.3.3. Выделение спекулятивных регионов и эпох на основе параллельного промежуточного кода
4. Экспериментальное исследование разработанных алгоритмов
4.1. Экспериментальное исследование характеристик разработанных алгоритмов
4.1.1. Экспериментальное исследование алгоритма исключения оператора break
4.1.2. Исследование алгоритма исключения оператора continue 156
4.1.3. Экспериментальное исследование алгоритма выделения регионов 158
4.1.4. Экспериментальное исследование алгоритма статического синтеза параллельной программы
4.2. Области практического применения полученных результатов 162
4.2.1. Программные средства поддержки этапа преобразования последовательных программ в мобильный параллельный промежуточный код
4.2.2. Программные средства поддержки этапа исполнения параллельного промежуточного кода
4.3. Результаты внедрения 167
Заключение 169
Список литературы


