Лучший способ распределения одного процесса по кластеру

Я новичок в кластерных вычислениях и хотел узнать больше о различном программном обеспечении, используемом для кластерных вычислений, и о том, какое из них лучше всего подходит для конкретных задач. В частности, проблема, которую я пытаюсь решить, связана со сценарием типа «Менеджер/Рабочие», где один менеджер отвечает за создание от 100 до 1000 рабочих мест. Каждое задание, хотя и относительно большое, должно выполняться на небольшой покадровой основе. т.е. Менеджер скажет каждому заданию: «Передвинься на один кадр и доложи мне». Выполнение одного кадра будет очень небольшим, поэтому задержка между менеджером и рабочими машинами должна быть очень маленькой, порядка микросекунд.

Благодарю вас! Буду признательна за любую информацию, даже если она не совсем соответствует описанному мной сценарию, просто чтобы дать мне отправную точку. Некоторые из тех, что я исследовал до сих пор, — это Hadoop, HTCondor и Akka.


person jekelija    schedule 13.08.2013    source источник
comment
Не знаю насчет других, но Hadoop не подходит, поскольку он предназначен для автономной пакетной обработки больших данных. Не совсем похоже на то, что вы описали.   -  person jzonthemtn    schedule 15.08.2013
comment
Ты прав; извините, я был очень рано в процессе исследования, когда я спросил об этом. Кандидатами на использование теперь являются JPPF, Akka, Twitter Storm, Open MPI и Open DDS.   -  person jekelija    schedule 15.08.2013


Ответы (1)


Поскольку для вас важна задержка связи, вам, вероятно, следует рассмотреть возможность использования MPI. Не так сложно написать простые программы Master/Worker с использованием MPI, и это, вероятно, даст вам наилучшую производительность, особенно если в вашем кластере есть высокопроизводительная сеть, такая как infiniband.

Если, как кажется, вы используете Java, вам придется провести некоторое исследование, чтобы определить хороший пакет Java/MPI. Здесь вы найдете несколько предложений: Java openmpi.

person Steve Weston    schedule 14.08.2013
comment
На самом деле, мы используем C++, просто изначально не нашли ничего для C++. OpenMPI кажется отличным, что вы знаете, как сравнивается OpenDDS? - person jekelija; 15.08.2013
comment
@jekelija Я не могу сказать, что знаю что-нибудь об OpenDDS, но, похоже, он больше ориентирован на корпоративные вычисления, чем на кластерные вычисления. Возможно, стоит подумать, но, судя по вашему описанию, он может быть более тяжелым, чем вам нужно. - person Steve Weston; 16.08.2013