Дополнительные возможности менеджера сценариев - Повышение производительности работы библиотеки GridMD

Одной из особенностей библиотеки GridMD является поддержка Алгоритмических шаблонов распределенных вычислений. Алгоритмические шаблоны являются высокоуровневыми моделями программирования распределенных приложений. Преимущество использования шаблона состоит в том, что требуется лишь привязать конкретные исполняемые процедуры к этапам шаблона алгоритма, а все служебные действия по взаимодействию параллельных вычислительных процессов библиотека выполнит скрыто от пользователя [10] .

Библиотека GridMD предоставляет шаблон Fork-split-merge, реализованный в виде класса GmFork. Он реализует шаблон ветвления, в котором граф начинается узлом Start, где происходит расхождение параллельных ветвей графа в узлы Split, Далее возможно произвольное количество узлов, которые приходят в конечный узел каждой из ветвей Merge. В конце каждый из узлов Merge соединяются с узлом Finish (Рис. 6).

пример графа, сконструированного с помощью шаблона ветвления gmfork

Рис. 6 Пример графа, сконструированного с помощью шаблона ветвления GmFork

Между узлами split и merge возможны новые ответвления графа, реализуемые с помощью GmFork или явного конструирования ветвей с помощью вызова функций Node().

Принцип работы с алгоритмическим шаблоном схож с построением графа при помощи менеджера сценариев, но в нем используется более высокоуровневый интерфейс конструирования графа, где узлы связываются

Между собой автоматически, исходя из положения типа создаваемого узла в последовательности шаблона. Еще одним важным преимуществом использования шаблона является привязка конкретного типа данных к связям между его узлами. Такая привязка обеспечивает контроль соответствия типов передаваемых данных на этапе компиляции, которая возможна благодаря необходимости параметризации шаблонного класса GmFork<> типами передаваемых данных для каждой из связи между этапами шаблона. В случае же использования функций Node() Проверка возможна только на этапе выполнения.

Другой особенностью GridMD является возможность динамического изменения графа исполнения [8]. Пользовательский код, определяющий действия, связанные с узлами, может изменять граф исполнения в процессе выполнения приложения, обращаясь к объекту менеджера сценариев и вызывая его интерфейсные функций по добавлению новых узлов и связей. Узел, изменяющий граф, должен быть объявлен как Локальный.

При каждом изменении графа состояние его исполнения сохраняется в файл формата XML, что позволяет произвести перезапуск приложения с места его последней остановки. Кроме того, GridMD поддерживает средство визуализации графа GraphViz, Обновляя соответствующий графу .dot файл при его изменениях. Визуализация графа исполнения может быть полезна для отладки приложения.

Похожие статьи




Дополнительные возможности менеджера сценариев - Повышение производительности работы библиотеки GridMD

Предыдущая | Следующая