• Перенос кластерного приложения на грид

Ответы: 4   Просмотры: 1690
Вверх
Вы должны быть зарегистрированным пользователем, чтобы писать в этот форум. Зарегистрируйтесь

 
Участник
Сообщений: 3

 • Перенос кластерного приложения на грид

Отправил dmitry от 17.06.2005 20:13

Приветствую всех. Сперва скажу, что сайт очень полезный, спасибо тем, кто его создал и поддерживает. Имею конкретный вопрос. Но сначала небольшое пояснение. Возникла необходимость перенести работающее MPI приложение на грид. Специфика приложения такова, что его "узким местом" является загрузка большого количества данных (несколько гигабайт) в оперативную память. Данные равномерно распределяются между машинами кластера в начале работы, после чего над ними производится большое количество простых операций, координируемых "главным" процессом. Объём пересылаемых в процессе работы данных минимален. Требуемая производительность обеспечивается именно засчёт того, что до конца работы все данные находятся в памяти "вспомогательных" процессов. Теперь собственно вопрос: можно ли на каком-либо тулките (globus, etc.) обеспечить общение вычислительного процесса с управляющим, не выгружая его (по возможности) из памяти? Т.е. запускать процесс только один раз, при вхождении узла в грид. Если нельзя, ничего страшного. Авторитетный отрицательный ответ тоже будет большой помощью. Ещё раз скажу, речь идёт о непрозрачном (т.е. явном) распределении ресурса "оперативная память". Заранее спасибо.

 
kvn
Менеджер
Сообщений: 2

 • Re: Перенос кластерного приложения на грид

Отправил kvn от 20.06.2005 14:16

Ваши разъяснения по постановке задачи все-таки не очень понятны. Поэтому могу сообщить лишь общие сведения.
1. Есть специальная реализация MPI для грид и Globus - MPICH G2, см. http://www-unix.mcs.anl.gov/mpi/mpich/.
2. К сожалению в Globus пока нет средств координации запуска процессов в разных кластерах.
3. Для пересылки данных есть службы GridFTP, RFT, так что объем пересылаемых данных лимитируется только возможностями сетей.

Если вопросы остались, пожалуйста, спрашивайте.

 
Участник
Сообщений: 3

 • Re: Перенос кластерного приложения на грид

Отправил dmitry от 20.06.2005 15:44

Спасибо за ответ! MPICH-G2 смотрел. Насколько я понял, с её помощью можно сделать кластер одним из "узлов" грида (поправьте, пожалуйста, если я не прав).
When running your MPICH-G2 application on a machine that has been equipped with a vendor-supplied MPI you must specify (jobtype=mpi)...
Моя же задача в том, чтобы заместить кластер гридом из обычных PC.
Ещё раз попробую изложить проблему. В документации у globus toolkit 4.0 я прочёл, что зверь под названием scheduler запускает user jobs на вычислительном элементе. Стало быть, по окончании job-а процесс завершается, и при запуске следующей job снова придётся загружать в память большое количество исходных данных, что составляет львиную долю от общего времени. В кластере этого не происходит - там все процессы живут всё время, пока не завершится процесс-координатор, и загружать в память данные требуется только один раз, в самом начале.
Можно ли на вычислительном элементе грида сделать "сквозной" user job process, которому можно "посылать" job-ы? Т.е. процесс выполняет разные jobs, не теряя загруженных в память исходых данных.

 
kvn
Менеджер
Сообщений: 2

 • Re: Перенос кластерного приложения на грид

Отправил kvn от 22.06.2005 13:30

Насколько я понял, ваша программа (состоящая из множества распределенных процессов) выполняется циклически с меняющимися параметрами, а на каждом цикле процессы используют один и тот же большой объем данных. Тогда почему бы не сделать, чтобы на каждом цикле процессы не завершались, а получали новые параметры с помощью MPI?

 
Участник
Сообщений: 3

 • Re: Перенос кластерного приложения на грид

Отправил dmitry от 22.06.2005 14:44

Да, так оно сейчас и реализовано, под MPICH.
Но эта реализация MPI неустойчива к отказам и рассчитана на кластер, поэтому я и ищу что-то "гридоподобное", но поддерживающее передачу сообщений процессам.
Кое-что нашёл уже: FT-MPI, MPICH-V. Буду смотреть. Если есть ещё варианты, рад буду узнать :)