Я делаю кучу вызовов MPI_Isend для ряда процессов для распространения некоторых данных. При каждом вызове я сохраняю полученный MPI_Request в массиве. После того, как все вызовы MPI_Isend сделаны, я делаю MPI_Waitall в запросах.Есть ли FIFO для каждого процесса FIFO-гарантия на MPI_Isend?
Порядок сообщений важен, то есть я хочу, чтобы каждый процесс получал сообщения в в том же порядке, который я им отправил. Это связано с тем, что для каждой части данных, которую я отправляю, я также распространяю некоторые метаданные с помощью отдельного вызова MPI_Isend. Я думаю, что это плохая идея, но я не знаю альтернативы. Очевидно, что метаданные должны поступать до данных, поэтому мне нужна гарантия FIFO. Это то, что я делаю?
Мне не нужны разные процессы, получающие данные в другом порядке, меня интересуют только отдельные процессы, получающие данные в правильном порядке. Является ли это документированным где угодно? Я использую реализацию MPICH2.
Я хочу распространять массив двойников с некоторыми связанными с ним данными, но «тег» слишком ограничен.