Обычным ответом на использование MPI-IO при создании какого-либо переносимого, разумного формата файла является использование HDF5 или NetCDF4 . У обоих есть реальная кривая обучения (но есть и множество учебных пособий ), но в результате вы получаете переносимые файлы с самоописанием, которые содержат миллионы инструментов для доступа, манипулирования и т. Д.
Если под «отформатированным» выводом вы имеете в виду простой читаемый человеком текст, то, как человек, который делает много всего этого, я бы не стал выполнять свою работу, если бы не убедил вас достаточно отойти от этого подход. Мы все в общем начинаем с этого, сбрасывая простой текст, чтобы мы могли быстро увидеть, что происходит; но это просто не очень хороший подход для производства. Файлы раздуты, ввод / вывод медленнее на (я обычно вижу 6-кратное замедление использования ascii в качестве двоичного файла, частично потому, что вы записываете небольшие фрагменты за раз, а частично из-за преобразования строк ), и для чего? Если выводится так мало данных, что вы на самом деле можете реально прочитать и понять вывод, вам не нужен параллельный ввод-вывод; если есть так много цифр, что вы не можете реально пролистать их все и понять, что происходит, то какой в этом смысл?