Aracılığıyla paylaş


MPI_Igather işlevi

Bir grubun tüm üyelerinden bir üyeye engelleyici olmayan bir şekilde veri toplar.

Söz dizimi

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parametreler

  • sendbuf [in]
    Köke gönderilecek verileri içeren arabelleğe yönelik işaretçi. Arabellek, sendtype tanıtıcısı tarafından belirtilen MPI_Datatypeardışık sendcount öğelerinden oluşur. İleti uzunluğu bayt sayısı değil, öğe sayısı bakımından belirtilir.

  • sendcount
    sendbuf içindeki sendtype öğelerinin sayısı. Değer sıfırsa iletinin veri bölümü boş olur.

  • sendtype
    sendbuf içindeki her öğenin veri türünü temsil eden MPI_Datatype tanıtıcısı.

  • recvbuf [out, isteğe bağlı]
    Kök işlem tarafından gönderilen veriler de dahil olmak üzere kök üzerindeki her işlemden alınan verileri içeren bir arabelleğe yönelik işaretçi (yalnızca kökte önemli). Alma arabelleği recvbuf , kök olmayan tüm işlemler için yoksayılır. Kök işlemde recvbuf , recvtype tutamacının belirttiği MPI_Datatypeardışık geri sayı öğelerinden oluşur. İleti uzunluğu bayt sayısı değil, öğe sayısı bakımından belirtilir.

  • recvcount [in]
    recvbuf içindeki recvtype öğelerinin sayısı. Değer sıfırsa, iletinin veri bölümü boş olur (yalnızca kökte önemlidir).

  • recvtype [in]
    MPI_Datatype işleyicisi, recvbuf'taki her öğenin veri türünü temsil ediyor (yalnızca kökte önemli).

  • root [in]
    alma işleminin MPI_Commiçindeki sırası.

  • comm [in]
    İletişim MPI_Comm tutamacı.

  • request [out]
    İletişim işlemini temsil eden MPI_Request tanıtıcısı.

Döndürülen değer

Başarılı MPI_SUCCESS döndürür. Aksi takdirde, dönüş değeri bir hata kodudur.

Fortran'da, dönüş değeri IERROR parametresinde depolanır.

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Açıklamalar

Engelleyici olmayan bir çağrı, ayrı bir tamamlama çağrısında tamamlanması gereken bir toplu toplama işlemi başlatır. İşlem başlatıldıktan sonra, katılan işlemlerdeki tüm hesaplamalardan veya diğer iletişimlerden bağımsız olarak ilerleyebilir. Bu şekilde engelleyici olmayan toplama işlemleri, toplama işlemlerini "arka planda" çalıştırarak olası eşitleme etkilerini azaltabilir.

Engelleyici olmayan toplama işlemleri için tüm tamamlama çağrıları (örneğin , MPI_Wait) desteklenir.

Gereksinimler

Ürün

Microsoft MPI v6

Üst bilgi

Mpi.h; Mpif.h

Kitaplık

Msmpi.lib

DLL

Msmpi.dll

Ayrıca bkz.

MPI Kolektif İşlevleri

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome