- •Руководство программиста
- •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. Использование динамического массива.
3.4.2. Уровень мобильных объектов, мобильных ссылок и мобильных заданий
InitControlHandler – класс инициализации статического служебного сегмента (управляющей) суперпамяти
MData – мобильные суперданные с Copy-On-Write-семантикой
MControlData – мобильные суперданные со служебной (управляющей) информацией
DRCObj – база объекта для поддержки распределенной сборки мусора
DRCRef – база указателя для поддержки распределенной сборки мусора
MRef – мобильная ссылка на суперданные
Resource – базовая структура для представления свободных и необходимых ресурсов
FreeResource – класс для представления свободных ресурсов
TaskResource – класс для представления необходимых ресурсов
TaskCtxt – класс представления контектста задачи
Task – класс представления задачи
TaskPrioQueue – приоритетная очередь заданий
MThread – мобильный поток-задача
MObj – класс для представления мобильных объектов с суперданными
MRef – класс для представления мобильных ссылок на мобильные объекты с суперданными
TaskBoard – доска объявлений о наличии/потребности в задачах/свободных ресурсах
MacroScheduler – кооперативный макропланировщик для мобильных заданий
3.4.3. Уровень поддержки т-семантики
TData – базовый класс для представления суперданных неготовых величин
TDataReady – класс для представления готовых суперданных
TDsc – базовый класс для представления мобильной ссылки на неготовое значение
TObj – класс для представления Т-величин (мобильных Т-обектов, содержащих суперданные)
TDataNotReady – класс для представления неготовых суперданных
TFrz – класс для "замораживания" Т-величин
TPtr – указатель на Т-величину
TVar – Т-переменная
TOut – Т-переменная - выход (или возвращаемый результат) Т-функции
TFun – класс для представления Т-функций
3.4.4. Сервисные классы
Atomic – атомарно изменяемое значение
ACnt – счетчик для атомарно изменяемых значений
ARef – ссылка на счетчик для атомарно изменяемых значений
Spinlock – класс для организации синхронизации системных тредов
String – класс для упрощенной работы со (временными) строками
UserInterface – класс, отвечающий за взаимодействие с Оператором
Viz – базовый класс для визуализации
Ring – класс для представления двухсвязных колец
Service – класс для представления системных сервисных функций FIXME: добавить маскирование
Delay – базовый класс для представления задерженных операций
SContext – часть Т-контектста, соответствующая статической системной конфигурации
TContext – динамическая часть Т-контекста
Prof – базовая поддержка для профилирования заданий
StatisticValues – базовая структура, содержащая статистические величины для заданий
TaskStatistic – статистика для задний
Statistic – структура для представления статистики в контрольной суперпамяти
CmdLine – класс, ответственный за обработку командной строки
Feature – базовый класс для определения расширений Т-ядра
DefaultExceptionHandler – базовый обработчик исключительных ситуаций
TRT – Т-рантайм
MainTRT – Т-рантайм для стартового узла
3.5. Опции конвертера t++
Для вывода списка допустимых опций конвертера t++ можно набрать команду
t++ --help:
На экран будет выведен список поддерживаемых в текущей версии опций:
T++->(C++,TSS) Converter v3.0, 2003-2004, PSI RAS, Russia.
Available options:
-v - print commands before invocation
-icc - compile using Intel icc compiler
-not - compile for sequential execution
-dbg - compile and link with debug info
-ltdb - link with "lightweight debugger"
-mdbg - link with "memory debugger"
-opt -do maximal possible optimization
-auto-c-call - try to call C-versions of tfuns
-static-mpicxx=<mpicxx> - statically link with <mpicxx>
-- xxx - pass "xxx" to used C++ compiler
+xxx -pass "-DWITH_xxx" to used C++ compiler
Поддержка тех или иных опций зависит от установленных расширений Т-системы с открытой архитектурой, а также сторонних продуктов. Так, например, для нормальной работы опции -icc в системе должен быть корректно установлен оптимизирующий компилятор фирмы Интел.
