Workflow-методология - Повышение производительности работы библиотеки GridMD

Суть workflow-методологии хорошо отражена в определении, данным Workflow Management Coalition [5] - это автоматизация бизнес процесса, при котором задания и документы передаются от одного исполнителя к другому исходя из набора процедурных правил. Workflow-методология позволяет представить некий производственный процесс в виде Сценария, состоящий из описания элементарных операций, из которых состоит процесс, описания исполнителей операций, описания последовательности выполнения операций - потоков управления; потоков данных, определяющих передачу информации между операциями, и описания внешних событий, которые могут влиять на ход выполнения процесса. Такая модель описания бизнес-процесса хорошо подходит для описания научного вычислительного процесса, когда ученый формулирует вычислительный эксперимент и выдает задания исполнителям - вычислительным ресурсам, в общем случае распределенным. Исходя из общих особенностей научных вычислительных процессов, таких как трудность оценки необходимого количества ресурсов для решения конкретной задачи, высокая вероятность отказа отдельных ресурсов, необходимость работы с большим объемом данных и существования иерархии подсценариев внутри главного вычислительного сценария строятся научные Системы управления сценариями. Система управления сценариями состоит из набора программных компонентов, предназначенных для описания пользователем сценария и его интерпретации, создания и управления экземплярами процессов, исполняющих сценарий и организации взаимодействия процессов с внешними приложениями.

Описание сценариев в научных системах управления сценариями строится на формальном представлении сценариев workflow-методологии. Ниже будут рассмотрены некоторые из них в контексте конкретных реализаций научных систем управления сценариями.

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

Примерами таких систем являются UNICORE, Condor. Condor является примером системы диспетчеризации заданий, в которую в качестве компонента входит планировщик выполнения действий, связанных с узлами графа DAGMan. DAGMan разбирает граф, представленный пользователем в виде текстового файла, с которым также связываются файлы-скрипты, описывающие задания, связанные с вершинами графа. Далее, исходя из зависимостей узлов, DAGMan выдает задания системе диспетчеризации заданий, обеспечивающей их распределенное выполнение. Задание отправляется на выполнение только в случае, если выполнены все его родительские задания. Помимо файла описания задания, с узлом графа связываются PRE - и POST - скрипты, выполняющиеся до и после выполнения задания соответственно. Основное их назначение состоит в подготовке входных файлов для задания, очистки и удаления временных файлов после выполнения задания и подготовке входных данных для последующих заданий.

Представление в виде сетей Петри. Сценарии исполнения также представляются в виде Цветных сетей Петри, Подробное описание формализма которых можно найти в [5]. Такое представление, в отличие ориентированных графов, позволяют описывать не только Поведение процесса, но и фиксировать его Состояние в ходе выполнения. Сети Петри имеют широкую аналитическую базу, методы которой могут быть использованы для доказательства различных свойств (выполнимость, поиск мертвых точек) и вычисления характеристик (время отклика, время ожидания) выполнения сценариев. Примером системы, использующей представления сценариев в виде сетей Петри является Fraunhofer Resource Grid [8].

Скриптовые языки. Главным преимуществом скриптовых языков описания сценария в отличие от графовых моделей является поддержка логико-арифметических конструкций, таких как циклы и условия. Примерами таких систем являются GridAnt и Karajan.

В данной работе будет рассмотрена и оптимизирована работа более низкоуровневого представителя класса систем управления сценариями - библиотеки GridMD языка C++. Библиотека GridMD использует графовую модель описания сценария, где граф конструируется пользователем библиотеки с помощью вызовов функций языка C++. Отличительными особенностями библиотеки является ее широкая переносимость, возможность глубокого управления вычислительным процессом, широкая типизация зависимостей между узлами графа и возможность встраивания кода исполняемых задач в один исполняемый файл с его последующим распределенным выполнением. GridMD реализована с использованием компонентов библиотеки wxWidgets [6] и заголовочных файлов шаблонных классов библиотеки Boost [7] .

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




Workflow-методология - Повышение производительности работы библиотеки GridMD

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