fbpx

Диспетчеры сетевых вычислений. Опыт собственной разработки.

Тимур Хайрулин. main road|post.

afanasy.jpg

Многим приходилось во время работы за компьютером выходить «покурить», потому что вашей рабочей станции надо что-то посчитать, и компьютер настолько сильно загружен, что на нём уже не комфортно или даже не возможно работать. Не всем нравится такое положение дел, мир давно куда-то спешит, и мы вынужденны как-то приспосабливаться. Удобно использовать для этого другие компьютеры, за которыми никто не работает. А заодно у них может не быть мониторов, клавиатур, и занимают они меньше места. Такие компьютеры соединяют в сеть и подключают к серверу — это и называют рендер фермой.

Фермы бывают разные, от нескольких старых компьютеров, которых жалко ещё выкидывать, до шумных прохладных комнат, забитыми «блейдами«. Но кто-то должен ими управлять, иначе компьютеры будут зря греть воздух, что не всегда нужно.

Многие из нас начинали с того, что сами управляли дополнительными компьютерами (некоторые так делают и по сей день, т.к. существует ряд задач, для которых это подходит). Мы бегали от машины к машине, сами запускали рабочие программы, открывали нужные сцены и ставили на «рендер» разные кадры на разных компьютерах. Прикидывали необходимое для расчётов время и, при необходимости, сами запускали зависимые задачи через нужный промежуток времени. Со временем наловчились писать простейшие cmd-скрипты (т.н. «батники») и возможно даже запускать их удалённо (иногда банально прося соседа[homo-диспетчера] перед уходом кликнуть ссылочку), т.е. вообще не подходить к удалённому компьютеру. Но простейший software-диспетчер, который мне приходилось видеть, был лучше homo-диспетчера, т.к. у homo-диспетчера всегда  низкая масштабируемость. Для нескольких компов мы ещё можем всё удержать в голове, где что надо запустить и где что уже запущено. С 10-ю машинами человек уже вряд ли будет нормально справляться. Да и вообще может устать, заболеть или напиться с горя или от счастья. И поэтому люди начали писать специальные программы.

Такую программу и называют сетевым рендер-менеджером (менеджер фермы — Farm Manager). На сервере запускают сервер-программу, на других (управляемых) компьютерах, запускают клиентскую часть менеджера. Главная программа на сервере «управляет» клиентами (рендер-нодами). Она говорит клиентам выполнять ту или иную команду, и следить за ходом её выполнения. Так клиент запускает, например, Nuke, просит его открыть определённую сцену и посчитать определённые кадры (или один кадр), а сервер всё это контролирует.

tasksquantity.png

Вот про такие программы я и хочу вам рассказать. Попытаюсь выделить некоторые важные признаки и классифицировать их, проведу сравнения и дам некоторые оценки. А также расскажу про нашу собственную БЕСПЛАТНУЮ разработку в этой области — диспетчер Афанасий, который по своим возможностям не отстает от коммерческих пакетов и оставляет далеко позади некоммерческие.

  ||   CG EVENT 2009 SUMMER, old_events