International conference of developers
and users of free / open source software

Cистема распределенного выполнения задач paexec

Алексей Чеусов, Минск, Беларусь, cheusov аt netbsd.org

LVEE 2011

paexec distributes tasks across several CPUs or machines in a network and collects results from those CPUs/machines. paexec runs several instances of `calculator’ on remote/local machines and sends them tasks one by one recieving results from them. `tasks’ given on input may be either a list of independent tasks or a dependency graph. `transport’ is any rsh/ssh-like program. Cool features: resistance to network failures, minimization of total calculation time.

В последнее время все большее распространение получают компьютерные системы оснащенные большим количеством процессоров или ядер. В настоящее время многоядерными процессорами комплектуются не только мощные сервера и рабочие станции, но также ноутбуки, нетбуки и даже мобильные телефоны и планшеты. В связи с этим часто возникает задача распараллеливания выполнения задач с использованием всех имеющихся вычислительных ресурсов. Та же проблема возникает при использовании кластера компьютеров, объединенных в вычислительную сеть. Задача не нова, и для ее решения имеется масса инструментов, таких, например, как MPI, стандартный API (реализован в библиотеках openmpi, mpich и др.), широко применяемый математиками для расчетов на супер-ЭВМ и кластерах. Тем не менее, существующие инструменты не лишены недостатков. В силу лицензионных ограничений далеко не всегда имеющиеся инструменты можно легально использовать в коммерческих целях, часто они имеют весьма специфическую область применения и неудобны для решения простых пользовательских задач, существующие инструменты порой слишком требовательны к количеству оперативной памяти и дискового пространства, а то и просто ограничены конкретной программно-аппаратной архитектурой.

Задача, ставшая в свое время перед автором — обработка больших массивов информации, а позднее обработка дерева задач, с использованием нескольких компьютеров различной аппаратной архитектуры. При этом «задача» в моем случае решалась автономной программой, написанной с применением различных языков программирования. Не найдя готового решения, подходящего для моего случая, я разработал программный пакет paexec с открытым исходным кодом (лицензия MIT), и разместил его в сети Интернет для публичного доступа.

Домашняя страница проекта: http://paexec.sf.net.

presentation

blog comments powered by Disqus