2013-06-04 2 views
0

У меня проблема с программой MPI, работающей по группе узлов Linux. В настоящее время группа настроена с помощью NFS, где/home/mpi установлен на всех узлах. Проблема в том, что программа требует, чтобы все узлы открывали файл в файловой системе в режиме записи (используйте fopen on/home/mpi/file) и записывайте, пока он выполняет вычисления. Один узел сможет открыть его, а другие не будут и будут выдавать ошибку. Вместо этого я хочу, чтобы каждый узел имел свой собственный файл для записи.MPI, NFS File Writing

Мне было интересно, есть ли способ обойти это. Я думал о создании отдельного файла для каждого узла, с рангом узлов, добавленным к имени файла, но задавался вопросом, существуют ли более простые способы обойти эту проблему. Есть ли способ настроить группу, чтобы все рабочие узлы имели свою собственную копию каталога/home/mpi, которая автоматически обновляется с любыми изменениями, которые мастер-узел делает с его копией?

Спасибо.

+0

В первом абзаце вы говорите, что каждый процесс открывает файл в режиме записи. Во втором - мастер, который меняет файлы, а другие ряды потребляют обновления. Это отличается от первого. Не могли бы вы рассказать о шаблоне ввода-вывода программы. –

ответ

0

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

Если вам действительно нужны все процессы для записи в один и тот же файл в файловой системе, вам придется как-то скоординировать параллельные выходы всех процессов, которые хотят записать в файл.

Невозможно сделать это на уровне файловой системы, насколько я знаю, но вы можете сделать это в своем MPI-коде. Стандартная, историческая реализация этого заключается в том, чтобы все процессы MPI отправляли сообщения в ранг 0, который отвечает за эффективное их запись в файловую систему.

Другим вариантом является просмотр функций ввода-вывода, представленных в MPI2, которые позволяют всем процессам работать в разных частях одного и того же файла.

+1

По моему опыту, входы/выходы MPI имеют крутую кривую обучения - то есть вы должны многому научиться, прежде чем сможете на самом деле что-либо сделать, но в долгосрочной перспективе это стоит того. –

Смежные вопросы