Система метакомпьютинга X-Com предназначена для быстрого развертывания и проведения распределенных расчетов. Система представляет собой инструментарий для адаптации и поддержки выполнения программ в распределенных неоднородных средах. Система поддерживает среды с десятками тысяч вычислительных узлов (процессоров), обеспечивает корректную работу в условиях высокой динамичности состава среды, не требует административного доступа к ресурсам. Система X-Com написана на языке Perl, что обеспечивает ее работоспособность на подавляющем большинстве современных программно-аппаратных платформ.
В основе архитектуры X-Com лежит клиент-серверная схема. Соответственно ей, прикладная задача должна быть логически разделена на две части: серверную и клиентскую. Серверная часть отвечает за разбиение задачи на множество независимых порций и объединение результатов. Для реализации серверной части задачи в системе X-Com имеется два прикладных интерфейса (API). В простейшем случае, если необходимо выполнить одну и ту же программу на множестве различных входных файлов, используется API Files, и в этом случае серверная часть задачи описывается в параметрах настройки сервера X-Com (указываются пути к входным и выходным каталогам и список файлов для обработки). В менее тривиальных случаях применяется API Perl. Этот интерфейс предполагает написание модуля на языке Perl, реализующего заданный набор функций: инициализация серверной части задачи, генерация номера первой и последней порции, генерация тела порции по нее номеру, обработка результатов готовой порции, условия завершения работы серверной части задачи, а также действия, выполняемые перед завершением.
Аналогичный подход применяется и для реализации клиентской части задачи. В элементарном случае в параметрах настройки сервера X-Com указывается формат команды с именами входных и выходных файлов, которая будет запущена клиентом X-Com на вычислительном узле. В более сложном случае клиентская часть задачи может быть описана двумя функциями на языке Perl: инициализация задачи на узле и обработка каждой порции данных.
После реализации клиентской и серверной части прикладной задачи формируется непосредственно вычислительная среда. Этот процесс состоит из двух частей: запуск клиентов X-Com на вычислительных узлах и настройка и запуск сервера X-Com. Клиент X-Com может быть запущен на вычислительном узле постоянно (в монопольном режиме) или запускаться в те моменты времени, когда узел не занят другими процессами (работа по занятости). На высокопроизводительных вычислительных комплексах используются интерфейсы к штатным системам очередей. В текущей версии X-Com поддерживается взаимодействие с Cleo, Torque, LoadLeveler, Slurm, а также Unicore.
Сервер X-Com запускается на специальной выделенной машине вручную либо с помощью подсистемы управления заданиями. Последний вариант предоставляет пользователям более удобный способ работы с распределенной средой, позволяя им оперировать привычными понятиями очереди заданий. При этом обеспечивается как последовательное выполнение задач на всех доступных ресурсах, так и параллельное выполнение одновременно нескольких заданий, а также запуск заданий с учетом их требований к ресурсам, на которые они будут распределены.
Существенная особенность системы X-Com – возможность построения иерархических распределенных сред с произвольным количеством уровней. Данная функциональность реализована с помощью промежуточных серверов X-Com. Промежуточный сервер получает задания и необходимые данные от вышестоящего сервера X-Com (для этого сервера он представляется клиентом X-Com) и распределяет их внутри пула своих клиентов (для них он представляется единственным сервером X-Com). Введение промежуточных серверов позволяет снизить нагрузку на центральный сервер распределенной среды, оптимизировать потоки данных, а также подключить к расчетам вычислительные ресурсы, находящиеся внутри закрытых сетей.
Подробнее о работе с системой X-Com можно почитать в документации.
С помощью системы X-Com был решен целый ряд вычислительно емких задач из различных научных областей, при этом в каждом расчете отрабатывалась та или иная функциональность системы. Описание наиболее ярких и интересных эксериментов смотрите в разделе "Примеры".
Система X-Com может применяться как основа для построения сервисов по распределению заданий на доступные вычислительные ресурсы. Так, совместно с компаниями Тесис и Сигма Технология в 2009-2010 гг. был реализован программный комплекс для решения оптимизационных гидродинамических задач. Программный комплекс объединял оптимизатор IOSO, решатель FlowVision и систему X-Com. Последняя отвечала за взаимодействие между оптимизатором, установленном на рабочем месте пользователя комплекса и генерирующим пакеты заданий для решателя, и системой очередей, через которую осуществлялся запуск пакета FlowVision на суперкомпьютерах МГУ . Описание работы см. в статье.
На суперкомпьютере СКИФ МГУ "Чебышев" с помощью системы X-Com был реализован сервис выполнения пакетов однопроцессорных задач на суперкомпьютерах. Основная задача сервиса – дополнение системы управления задачами Cleo функциональностью по группировке нескольких однопроцессорных задач на один узел суперкомпьютера для повышения эффективности использования ресурсов вычислительной системы. Описание этого проекта см. в статье.
Кроме того, система X-Com применялась для исследования свойств прикладных задач на процессорном полигоне НИВЦ МГУ. В рамках этой работы проводилось сравнение времени выполнения приложения, откомпилированного с использованием различных компиляторов, запускаемого по одному или более процессов на узел, на имеющихся в полигоне программно-аппаратных платформах. Таким образом оценивалась эффективность работы приложения в зависимости от набора факторов (архитектура узла, компилятор и его опции, наличие или отсутствие параллельно работающих процессов).