Сделать файл доступным на всех узлах
Я пишу приложение MPI, которое принимает имя файла в качестве аргумента и пытается прочитать из файла, используя обычные функции Си. Я запускаю это приложение на нескольких узлах кластера, используя qsub
который в свою очередь использует mpiexec
,
Приложение прекрасно работает на локальном узле, где находится файл. Для этого я просто позвоню mpiexec
непосредственно:
mpiexec -n 4 ~/my_app ~/input_file.txt
Но когда я отправляю это с qsub
для запуска на других узлах кластера, часть чтения файла не выполняется. Ошибки приложения на fopen
вызов - он не может открыть файл (вероятно, потому что его нет).
Вопрос в том, как сделать файл доступным для всех узлов? Я посмотрел qsub
manpage и не мог ничего оштрафовать.
1 ответ
Я думаю, Ванильная Горилла больше не нуждается в ответе? Однако давайте рассмотрим случай патологической системы без параллельной файловой системы и файловой системы, доступной только на одном узле. В ROMIO (очень распространенная реализация MPI-IO) есть способ достичь вашей цели:
Как я могу передать файл из одного процесса ко всем другим с помощью MPI?