- •Руководство программиста
- •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. Использование динамического массива.
Допустим, мы имеем данные t1, t2 и d(t). Рассмотрим эффект от пересылки некоторой задачи с узла 1 на узел 2. Предположим,
Где δi зависят от сложности задачи и ее сетевой активности. При этом:
Далее находится D(T') по соответствующей формуле. Таким образом, можно констатировать, что сложность вычисления D(T) не зависит от N.
Планировщик рассматривает всевозможные пересылки задач из своего ptq на другие узлы и выбирает вариант с наименьшим итоговым значением D(T). Разумеется, если нет вариантов, приводящих к уменьшению дисперсии, то пересылок не производится.
От формул для δi существенно зависит поведение планировщика. В простейшем случае они выглядят следующим образом:
где
—
сложность задачи, vi — мощность i-го
вычислительного узла. Вычислительная
сложность задачи вычитается на одном
узле и прибавляется на другом. Это дает
стратегию планирования, при которой не
учитывается состояние коммуникационных
каналов. Данная стратегия при определенных
условиях может привести к тому, что
задачи, пересылаемые с узла на узел,
составят существенную часть сетевой
нагрузки Т-приложения. Однако, при малой
сетевой активности собственно
вычислительного алгоритма, излишне
большое число пересылок не сказывается
на производительности. Добавление в
эти формулы зависимости от сетевой
активности переносимой задачи также
ее размера (с ним связаны затраты на
собственно пересылку задачи), например:
где S — размер задачи, r12 — скорость связи между узлами, позволит учесть влияние этих факторов.
Далее, в следующем разделе строится модель влияния параметров коммуникационной среды на процесс выполнения распределенных вычислительных приложений. На основе модели приводятся уточненные формулы для δi, пригодные для использования в метакластерной среде, которая характеризуется низкими значениями пропускной способности и высокой задержкой межкластерных каналов связи.
2.11. Метапланировщик OpenTs
Математическая
модель. Пусть
имеются два узла с вычислительной
мощностью C1 и C2 соответственно. Они
связаны коммуникационным каналом с
задержкой l и пропускной способностью
b. Время пересылки данных объема S по
такому каналу составляет
.
На
узле 1 есть нераспределенная работа
общей вычислительной сложности A.
Допустим, характер задачи таков, что
объем входных и выходных данных,
используемых при выполнении части
работы, пропорционален ее объему. Другими
словами, есть некоторый общий объем
данных B, и вычисление части работы
сложности A1 требует данных объемом
.
Практика использования разных версий
Т-системы при решении задач механики
позволяет утверждать, что многие подобные
задачи удовлетворяют этому условию.
Допустим,
на узел 2 будет передана работа сложностью
A2, соответственно на узле 1 останется
работа сложностью
.
Работа на узле 1 будет выполнена за время
Время выполнения работы на узле 2 включает в себя дополнительные расходы на пересылку входных данных на узел 2 и результатов вычислений обратно на узел 1 и оценивается как
Общее
время исполнения задачи
как
функция от A2 монотонно убывает на [0, A],
T2 монотонно возрастает на этом отрезке,
T1(0) > T2(0), T1(A) < T2(A). Заметим, что T
достигает минимума на [0, A] в точке
:
,
если такое
существует.
Действительно,
при
имеем:
а
при
:
Если не существует то минимум T достигается в точке A2 = 0 из-за разрывности функции T2 в этой точке. Это означает, что связь между узлами настолько медленная, что пересылка любой части работы не имеет смысла, и ее выгоднее выполнить на узле 1. Необходимым и достаточным условием для этого является
или
В
общем случае на каждом из узлов имеется
не пустое множество готовых к исполнению
или пересылке задач. Планировщик для
принятия решения рассматривает возможные
варианты пересылки задач с данного узла
на остальные узлы. Ожидаемый эффект от
пересылки задачи заключается в изменении
общего времени исполнения задач на
узлах вычислительной системы и выражается
формулами для
.
Допустим, вычислительная сложность
рассматриваемой задачи A0, а объем
пересылок, необходимых для ее вычисления
— B0. Тогда
выглядят
следующим образом:
Следует отметить, что в качестве вычислительных узлов в данной модели могут выступать, например, сильносвязанные кластеры. В настоящее время типичные скорости передачи данных между двумя узлами внутри одного кластера и между двумя кластерами различаются на три порядка. Это позволяет планировщику рассматривать удаленный кластер как один вычислительный узел с мощностью, равной суммарной вычислительной мощности его узлов. Таким образом, планировщик, действующий на узле n-узлового кластера, в качестве возможных вариантов пересылки задачи рассматривает n-1 локальных узлов и N-1 узлов, соответствующих удаленным системам, участвующим в вычислениях.
Такое иерархическое представление решает проблемы масштабируемости метакластерной системы, позволяя планировщику заниматься распределением задач только внутри своего кластера. При этом задачи посылаются на удаленный кластер как на единый вычислительный ресурс, а назначением конкретного узла для них занимается планировщик удаленного кластера.
Дополнительным аргументом за такую архитектуру планирования является тот факт, что при существующей большой разнице в скоростях внутрикластерного и межкластерного взаимодействия информация о ходе вычислений на узлах удаленного кластера, которой обладает планировщик, оказывается устаревшей. Таким образом, только планировщик удаленного кластера способен принять обоснованное решение о распределении работы среди его узлов.
В условиях метакластерной системы формула приобретает важный смысл. Она дает условие, при котором подключение нового кластера к вычислительной системе нецелесообразно (либо по причине плохой связи с ним, либо из-за того, что задача требует большого количества пересылок).
