1 сентября 2011 г.

Использование офисной компьютерной сети для нераспределенных вычислений

В данной заметке я в двух словах расскажу о способе использования множества офисных компьютеров для решения отдельных задач (по задаче на один компьютер) без беспокойства хозяина компьютера :)
Источник изображения: https://secure.flickr.com/photos/dnorman/3263654347/















Существует два способа использования группы компьютеров для отдельных (не распределенных) вычислений.

1. Солвер-агент на каждом компьютере
На каждом компьютере устанавливается и настраивается солверагент. Мы подключаемся к этим солверагентам по IP адресу машины, сохраняем все данные на тот же компьютер, работаем как обычно.

Минусы подхода:
  • каждый раз, когда нужно поменять настройки солверагента, придется беспокоить хозяина компьютера с просьбой перезапустить службу. 
  • В некоторых случаях это возможно только перезагрузкой. 
  • Результаты придется доставать по сети. Для запуска и контроля солверов придется многократно переключаться между разными солверагентами.Это утомляет.

Плюсы подхода: сохранение данных происходит не по сети , т.е. происходит быстрее.

2. Запуск солверов происходит с вашего компьютера с использованием MPI

На всех офисных компьютерах должен стоять только MPICH, солверагент нужен только один и настроен он должен быть только на вашей машине.

Плюсы подхода:
  • беспокоить хозяина компьютера не придется ни по каким поводам.Даже солвер убить будет просто.
  • данные сразу сохраняются на ваш компьютер и не занимают место на диске чужого компьютера
  • будет работать только один солверагент, в котором будет множество строчек для запуска солверов на разных компьютерах. Т.е. не придется многократно переключаться между компьютерами
Минусы подхода:сохранение данных по сети будет происходить дольше; нужно обеспечить права для запуска MPI процессов на всех компьютерах для какого-то пользователя.

Ниже кратко описывается принцип настройки работы по второй методике.

Настройка FlowVision для запуска нескольких задач на нескольких компьютерах без установки FlowVision на каждый компьютер
  1. Расшариваем в офисной сети папку
  2. В этой папке делаем копию установленного FlowVision; создаем папку для настроек FlowVision ; создаем папку для солверных частей проектов
  3. Запускаем конфигуратор в этой папке и указываем СЕТЕВОЙ путь до расшаренной папки с настройками
  4. В конфигураторе настраиваем альтернативные порты солверагента, чтобы не конфликтовать с локальным, например. Либо забываем про старый солверагент и работаем отныне только с этой инсталляцией в расшаренной папке
  5. В настройках солверагента правим строчку для запуска в многопроцессорном режиме (даже если процессор один, можно будет и указать 1 процессор, но в многопроцессорном режиме). Подробнее о настройке строчек солверагента см. ниже.
  6. Создаем пользователя солверагента, в настройках пользователя указываем путь до солверных проектов как СЕТЕВОЙ до расшаренной папки с проетками.
  7. На все компьютеры в сети, которые хотим использовать, устанавливаем MPICH2. 
Настройка солверагента

Командная строка для запуска солвера на чужом компьютере будет выглядеть примерно так:
SolverCmdLineMPI="C:\Program Files\MPICH2\bin\mpiexec" -n %1 -machinefile "\\MYCOMPUTER\shared\FlowVisionNet\FlowVision\mpisettings\remote1_host.txt" -pwdfile "\\MYCOMPUTER\shared\FlowVisionNet\FlowVision\mpisettings\my_pwd.txt" "\\MYCOMPUTE\shared\FlowVisionNet\FvSolver64.exe"; 64-bit 3.08.01MPICH2 remote1
Эта строка на моем компьютере запускает MPI, который читает (параметр -machinefile )  файл remote1_host.txt в моей сетевой папочке. В этом файле MPI узнает, на каком компьютере (компьютерах) я хочу запустить солвер. MPI на этих компьютерах запускает солвер, который лежит в моей! сетевой папке.  Для запуска ему понадобится залогиниться на чужом компьютере. Логин пароль он берет по команде -pwdfile из файла my_pwd.txt.

С логином-паролем есть нюанс: нужно попросить админа создать специального пользователя для запуска MPI процессов на всех компьютерах, либо разрешить под вашим пользователем (с вашим логином и паролем) запускаться на чужих компьютерах. Есть вариант, когда все коллеги сообщат свои логин и пароль от своих компьютеров :)

Далее для каждого нового компьютера создаем свою пару machine и pwd файлов  (pwd может быть один, если у вас есть пользователь с одним именем и паролем на всех компьютерах). И прописываем путь до этих файлов  в каждой новой строке солверагента.

Комментариев нет:

Отправить комментарий