MPI_File_write_all с различным значением счетчика для каждого процессора

Это может быть глупый вопрос, но,

Я бы этого хотел N процессоры пишут все по другому byte count в том же файле с другим offset сделать данные непрерывно.

Я хотел бы использовать MPI_File_write_all(file,data,count,type,status) (индивидуальные файловые указатели, коллективные, блокирующие) функции.

Первый вопрос может каждый процессор указать разные значения для count параметр?
Я не смог найти ничего упомянутого в справочнике MPI 3.0. (Мое намерение состоит в том, что это невозможно?)

На данный момент я обнаружил две следующие проблемы:

  1. Когда я хочу написать большое количество MPI_BYTES целое число (32 бита) count в функциях MPI_File_write … мало и дает переполнение конечно!

  2. Я не (не могу) / не хочу использовать производный тип данных в MPI, потому что, как упоминалось выше, все процессоры пишут разные byte count и тип MPI_BYTES

Спасибо за любую помощь по этой теме!

0

Решение

Вы свернули несколько вопросов здесь

  • Абсолютно, процессы могут указывать разные или даже нулевые объемы данных для коллектива MPI_File_write_all рутина. Не только может count параметр отличается, нет причин datatype Параметр также должен быть одинаковым.

  • Проблема № 1: Если вы хотите написать больше, чем int Чтобы получить данные MPI_BYTE, вам придется создать новый тип данных. Например, допустим, вы хотели записать 9 миллиардов байт. Создайте тип контига размером 1 миллиард, затем напишите 9 из них. (если объем данных, которые вы хотите записать, не делится поровну, вам может понадобиться hindexed или struct type).

  • проблема № 2: не проблема, чтобы каждый процесс MPI создавал свой собственный тип данных или число типов данных.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]