- •Руководство программиста
- •1. Назначение программы
- •1.1. Назначение
- •1.2. Условия применения
- •2. Характеристика программы
- •2.1. Программа и параллельный алгоритм
- •2.2. Особенности функционального подхода к распараллеливанию
- •2.3. Примеры программ
- •2.3.1. Числа Фибоначчи
- •2.3.3. Рекурсивный обход дерева
- •2.5. Особенности реализации в различных операционных системах
- •2.5.1. OpenTs для Windows
- •2.5.1.1. Платформа Windows Compute Cluster Server
- •2.5.1.2. Инсталлятор
- •2.5.1.3. Набор для разработчика (sdk)
- •2.5.1.4. Интеграция с Visual Studio 2005
- •2.5.1.5. Сборка t-приложений
- •2. Локально в параллельном режиме, используя mpiexec:
- •3. На кластере, используя приложение Cluster Job Submission and Monitoring Console, которое поставляется вместе с Compute Cluster Pack:
- •2.6. Особенности организации параллельных вычислений при помощи т- системы
- •2.7. Программное обеспечение т-системы и дополнительные возможности
- •2.7.2. Архитектура ядра т-системы
- •2.8. Сервисные возможности т-системы
- •2.9. Алгоритм поддержки общей памяти
- •2.9.1. Решения, использованные при построении Суперпамяти
- •2.9.2. Описание архитектуры и программной реализации Суперпамяти
- •2.9.3. Передача значений с узла на узел
- •2.9.4. Алгоритм работы сборщика программного мусора
- •2.9.5. Операции присваивания и «замораживания» неготовых величин
- •2.9.6. Возможное расширение адресного пространства суперпамяти для поддержки распределенных вычислительных сетей
- •2.10. Планирование в OpenTs
- •2.10.1. Постановка задачи
- •2.10.2. Алгоритм планирования
- •Допустим, мы имеем данные t1, t2 и d(t). Рассмотрим эффект от пересылки некоторой задачи с узла 1 на узел 2. Предположим,
- •Где δi зависят от сложности задачи и ее сетевой активности. При этом:
- •2.11. Метапланировщик OpenTs
- •2.12. Поддержка отказоустойчивости исполнения т-приложений
- •2.12.1. Неготовые значения и незавершенные по причине сбоя вычисления
- •2.12.2. Вектор перерождений
- •2.12.3. Вектор посещений
- •2.12.4. Классы повреждений т-функции в случае сбоя
- •3. Обращение к программе
- •3.2. Пример программы, использующей суперпотоки (уровень s)
- •3.3. Использование т-структур и массивов переменного размера
- •3.4. Описание классов реализации системы OpenTs
- •3.4.1. Уровень суперпамяти и суперпотоков
- •3.4.2. Уровень мобильных объектов, мобильных ссылок и мобильных заданий
- •3.4.3. Уровень поддержки т-семантики
- •3.4.4. Сервисные классы
- •3.6. Определение т-контекста во время исполнения программы
- •4. Сообщения
- •4.1. Цветовая схема
- •4.2. Сообщения о фатальных ошибках
- •4.3. Информационные сообщения
- •5. Приложение a. Пример вставки и замены листьев в дереве.
- •6. Приложение b. Использование динамического массива.
Руководство программиста
Содержание
1. Назначение программы
1.1. Назначение
1.2. Условия применения
2. Характеристика программы
2.1. Программа и параллельный алгоритм
2.2. Особенности функционального подхода к распараллеливанию
2.3. Примеры программ
2.3.1. Числа Фибоначчи
2.3.2. Краткая характеристика языка Т++
2.3.3. Рекурсивный обход дерева
2.4. Разработка программ на языке T++
2.5. Особенности реализации в различных операционных системах
2.5.1. OpenTS для Windows
2.5.1.1. Платформа Windows Compute Cluster Server
2.5.1.2. Инсталлятор
2.5.1.3. Набор для разработчика (SDK)
2.5.1.4. Интеграция с Visual Studio 2005
2.5.1.5. Сборка T-приложений
2.6. Особенности организации параллельных вычислений при помощи Т- системы
2.7. Программное обеспечение Т-системы и дополнительные возможности
2.7.1. Компилятор языка Т++
2.7.2. Архитектура ядра Т-системы
2.8. Сервисные возможности Т-системы
2.9. Алгоритм поддержки общей памяти
2.9.1. Решения, использованные при построении Супер памяти
2.9.2. Описание архитектуры и программной реализации Супер памяти
2.9.3. Передача значений с узла на узел
2.9.4. Алгоритм работы сборщика программного мусора
2.9.5. Операции присваивания и «замораживания» неготовых величин
2.9.6. Возможное расширение адресного пространства супер памяти для поддержки распределенных вычислительных сетей
2.10. Планирование в OpenTS
2.10.1. Постановка задачи
2.10.2. Алгоритм планирования
2.11. Метапланировщик OpenTS
2.12. Поддержка отказоустойчивости исполнения Т-приложений
2.12.1. Неготовые значения и незавершенные по причине сбоя вычисления
2.12.2. Вектор перерождений
2.12.3. Вектор посещений
2.12.4. Классы повреждений Т-функции в случае сбоя
3. Обращение к программе
3.1. Интерфейсы C++
3.2. Пример программы, использующей супер потоки (уровень S)
3.3. Использование Т-структур и массивов переменного размера
3.4. Описание классов реализации системы OpenTS
3.4.1. Уровень супер памяти и супер потоков
3.4.2. Уровень мобильных объектов, мобильных ссылок и мобильных заданий
3.4.3. Уровень поддержки Т-семантики
3.4.4. Сервисные классы
3.5. Опции конвертера t++
3.6. Определение Т-контекста во время исполнения программы
4. Сообщения
4.1. Цветовая схема
4.2. Сообщения о фатальных ошибках
4.3. Информационные сообщения
5. Приложение A. Пример вставки и замены листьев в дереве.
6. Приложение B. Использование динамического массива.
1. Назначение программы
1.1. Назначение
Т-система — среда программирования с поддержкой автоматического динамического распараллеливания программ. Для реализации концепции автоматического динамического распараллеливания программ в Т-системе предложена новая модель организации вычислительного процесса, основанная на следующих базовых принципах:
В качестве основной парадигмы рассматривается функциональное программирование.
Программа представляет собой набор чистых функций. Каждая функция может иметь несколько аргументов и несколько результатов.
В то же время тела функций могут быть описаны в императивном стиле (на языках типа FORTRAN, C и т. п.). Важно только, чтобы:
всю информацию извне функция получала только через свои аргументы;
вся информация из функции передавалась только через явно описанные результаты.
Вызов функции G, производимый в процессе вычисления функции F, выполняется нетрадиционным способом (так называемый сетевой вызов функции). При этом порождается новый процесс с несколькими входами (в соответствии с числом аргументов функции G) и несколькими выходами (в соответствии с числом результатов функции G). Выходы нового процесса связываются с соответствующими переменными процесса F отношением поставщик-потребитель и, тем самым, переменные-потребители принимают неготовые (не вычисленные) значения. Порожденный процесс G должен вычислить функцию G и заменить неготовые значения у всех своих потребителей на соответствующие результаты функции G.
