Это может быть глупый вопрос, но,
Я бы этого хотел N
процессоры пишут все по другому byte count
в том же файле с другим offset
сделать данные непрерывно.
Я хотел бы использовать MPI_File_write_all(file,data,count,type,status)
(индивидуальные файловые указатели, коллективные, блокирующие) функции.
Первый вопрос может каждый процессор указать разные значения для count
параметр?
Я не смог найти ничего упомянутого в справочнике MPI 3.0. (Мое намерение состоит в том, что это невозможно?)
На данный момент я обнаружил две следующие проблемы:
Когда я хочу написать большое количество MPI_BYTES
целое число (32 бита) count
в функциях MPI_File_write … мало и дает переполнение конечно!
Я не (не могу) / не хочу использовать производный тип данных в MPI, потому что, как упоминалось выше, все процессоры пишут разные byte count
и тип MPI_BYTES
Спасибо за любую помощь по этой теме!
Вы свернули несколько вопросов здесь
Абсолютно, процессы могут указывать разные или даже нулевые объемы данных для коллектива MPI_File_write_all
рутина. Не только может count
параметр отличается, нет причин datatype
Параметр также должен быть одинаковым.
Проблема № 1: Если вы хотите написать больше, чем int
Чтобы получить данные MPI_BYTE, вам придется создать новый тип данных. Например, допустим, вы хотели записать 9 миллиардов байт. Создайте тип контига размером 1 миллиард, затем напишите 9 из них. (если объем данных, которые вы хотите записать, не делится поровну, вам может понадобиться hindexed или struct type).
проблема № 2: не проблема, чтобы каждый процесс MPI создавал свой собственный тип данных или число типов данных.
Других решений пока нет …