к настоящему времени у меня есть 10 серверов для HPC, ориентированных на мощные вычисления. Моим пользователям нужно запустить несколько процессов с помощью qmake. Пользователи привыкли работать с ubuntu 9.10, и программное обеспечение из репозиториев им доступно.
Я развернул ubuntu 9.10 на всех 10 серверах (pxe rock).
На данный момент мы работаем с parallel-ssh и cluster-ssh, что позволяет запускать один и тот же процесс на всех серверах. С этими инструментами серверы остаются такими же независимыми, но с тем же программным обеспечением и той же запущенной командой.
Теперь мы хотели бы перейти к следующему шагу и увидеть все серверы как один со всеми ресурсами из других 9, как если бы это были его ресурсы.
Разница будет существенной во времени обработки, а также во времени разработки команды для запуска.
Любые советы по поводу того, какое программное обеспечение использовать, будут очень полезны?
Спасибо
То, о чем вы говорите, называется Единый образ системы (SSI). Наиболее распространенный вариант этой схемы для Linux реализует MOSIX. Хотя это дает некоторые преимущества с точки зрения управления системой, в целом процессы не могут охватывать несколько узлов без использования какой-либо формы MPI. В основном, независимо от того, используете ли вы «стандартный» кластер, работающий на gridengine, или формируете свои системы в виде единого образа, вам все равно придется модифицировать все программное обеспечение, чтобы оно могло охватывать несколько узлов.
в конце я использовал Sun Grid Engine.
Я задокументировал это в частной вики, вырезал и вставил в свой блог. Я думаю, это может быть полезно даже без перевода. ;)
Запись в блоге : http://suportrecerca.barcelonamedia.org/blog/?p=240
Если кому-то нужен код вики, просто спросите его здесь.
Спасибо.
Кластер - это не одна машина с точки зрения производительности, для производительности важна локальность файловой системы и памяти.
Выполнение действий на уровне приложения, хотя и менее общее, более эффективно с точки зрения ресурсов. Ваш пример qmake можно значительно ускорить, настроив distcc.
Я никогда не реализовывал такой раньше, но он звучит как кластер Беовульф будет работать для того, что вы пытаетесь сделать. Я много читал об этом в прошлом, и для некоторых более простых процессов может потребоваться небольшое перекодирование в зависимости от того, чего вы пытаетесь достичь.