Мне нужно экспортировать файл ASCII в распределенную файловую систему. В настоящее время я открываю потоки файлов для одного и того же файла в режиме добавления на каждом узле. Затем я экспортирую все данные последовательно узел за узлом. Будет ли это решение работать корректно в распределенных файловых системах или необходимо использовать MPI-I / O?
Кажется, я не совсем понимаю концепцию параллельных файловых систем.
Постскриптум Файл обязан быть ASCII.
С MPI-I / O вы не можете добавлять данные в конец файлов параллельно. Вы можете записывать данные в определенные места файла параллельно (в разные места для каждого процесса MPI), поэтому вам необходимо знать смещения для каждого процесса. Что может быть неосуществимо для файлов ASCII.
Другой вариант — записать отдельный файл каждым процессом MPI (параллельно), а затем объединить эти файлы в один, выходящий за рамки параллельной программы.
Других решений пока нет …