LINUX.ORG.RU

Вычислительные сети, распределение задач


0

1

Приветствую! Прошу помощи по технически сложной задаче:

Есть разработчики, пишущие программный код на различных языках - от C и R до VB6(OLE,COM).Есть ряд машин, под управлением ОС Windows.

Необходимо иметь возможность собирать исходники в бинарники и зупускать их на выбранных машинах. По-сути необходимо построить вычислительную сеть:

[Компилируемые сырцы] -> [Сборка] -> [Задача для исполнения(исполнить X раз с такими-то параметрами на выбраных машинах из сети)] -> [Забрать результат и сохранить]

Бинарники проводят математические рассчеты, данные(десятки гигабайт) берут с сетевого диска.

Была идея реализовать вычисления на основе BOINC-сети, не устроила по причине необходимости специальной сборки сырцов. Написание подобной сети пока не рассматриваю как вариант, интересуют открытые системы с возможностью дописки/шлефовки.

Знаете ли вы о каких-либо подобных системах?

Решение проблемы:

  • Увольняете нахер тех, кто на VB6(OLE,COM)
  • Сносим венду
  • Поднимаем кластер на Scientific Linux
  • Поднимаем систему очередей
  • Параллелим код под православный MPI
anonymous ()
Ответ на: комментарий от anonymous

Поддерживаю!!! Для распред вычислений оффтопик не канает, у вас там ещё поди икспи?
Только не придётся ли вам самому переписывать весь софт под никсы, разогнав ораву разработчиков аля «лебедь&&рак&&щука»?

adriano32 ★★★ ()
Ответ на: комментарий от anonymous

Чудесное решение, всеми руками за, НО - уволить всех аналитиков(именно аналитический отдел - основа компании) не представляется возможным. Я не вижу возможности обучить всех аналитиков программированию под POSIX-like системы, мы не софтверная компания. Насчет MPI - путь куда расти, долгий и правильный путь. Здесь и сейчас есть аналитики(даже не программисты), работающие кто с чем(Fortran, C++, SAS)

andreyse ()

если творение аналитиков работает в wine, то ssh+expect --- для каждого «творения» писать скрипт обвязку которая будет делать сборку, тестирование и прогон.

c и R можно объединить засунув код на c внутрь R. ну и запускать всё в каком нибудь то snow. тоже писать код тестирования и код прогона задания.

psv1967 ★★★★★ ()

>Есть ряд машин, под управлением ОС Windows.

тогда вам на винфак, уважаемый, чего на лор приперся с оффтопиком?

Zhbert ★★★★★ ()
Ответ на: комментарий от andreyse

Наймите пару посиксных кодеров специально для расчётов. Толку от аналитиков в этой проблеме мало.

mashina ★★★★★ ()
Ответ на: комментарий от Pterodaktil

BOINC не совсем то, чего хотелось бы: 1. Необходимо собирать код с вставками вызовов BOINC функций 2. Есть программа просчета данных, есть слабые машины. Оптимальным решением будет собрать всю мощность кластера «под одну машину» и исполнять на ней без использования MPI.. у PLAN9 есть наметки на что-то подобное

andreyse ()
Ответ на: комментарий от andreyse

Я не вижу возможности обучить всех аналитиков программированию под

POSIX-like системы, мы не софтверная компания.


Программирование под посикс это не только MPI. Пусть пишут на октаве каком нибудь (матлаб клон) или питоне. Те аналитики которые пишут на фортране и C++ должны нормально писать и под линуксы.

Другое дело что скорее всего у них не будет на это желания, это да :):):)

kernel ★★☆ ()

Необходимо иметь возможность собирать исходники в бинарники и

зупускать их на выбранных машинах. По-сути необходимо построить

вычислительную сеть: ...

...

Знаете ли вы о каких-либо подобных системах?


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

Примерно как это делать - нужно из имеющихся вендовых машин создать некое подобие нормального юникса :)

* поставить cygwin на все машины, там поставить sshd, bash, может perl для скриптов и вообще все юниксизмы. В общем какой нибудь нормальный не венда-онли скриптовый язык.

* сделать венды на всех машинах более менее одинаковыми(версии, сервис паки). Что бы не всплывало что программы работают на одном узле и не работают на другом.

* сделать какое то количество одинаковых пользователей на всех машинах , вручную или поднимать домен, думай сам.

* настроить ключи ssh для доступа с машины на машину.

* программы класть на сетевой диск так же как сейчас данные. надо наверное проследить за тем что бы этот диск на всех узлах был одной буквой.

* затем придумать удовлетворяющий потребителя способ организации данных и взаимодействия с тобой. То есть как должны запускаться их программы, куда класть результаты: где держать промежуточные данные и тп. Соотвественно следить за тем что программы пользователей это делали.

* юзеров надо научить чтобы они делали вменяемые программы - без гуя, что бы не засирали все и вся и тп :) По этому скорее всего тебе надо будет както проверять их программы перед тем как ни пойдут в активное использование.

* затем настрой какой нибудь openpbs в качестве шедулера для рассылки работ. Это проще всего сделать в линуксовой вируталке если совсем нет линуксовых серверов.

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

* также в скриптах нужна будет проверка - включена машина или нет. Это как тебе удобнее делать - можно например запретить что бы «кластерные» машины выключали - все равно ведь считают :)

* это надо проделать с учетом того кто будет запускать программы - юзеры без участия админа/оператора, юзеры с участием админа/оператора, админ/оператор без участия юзеров :)

kernel ★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.