Aracılığıyla paylaş


MPI_Igatherv işlevi

Bir grubun tüm üyelerinden bir üyeye engelleyici olmayan bir şekilde değişken verileri toplar.

Söz dizimi

int MPIAPI MPI_Igatherv(
  _In_opt_  const void         *sendbuf,
  _In_            int          sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_opt_  const int          recvcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parametreler

  • sendbuf [in, isteğe bağlı]
    Kök işleme gönderilecek verileri içeren bir arabelleğe tanıtıcı.

    comm parametresi bir intracommunicator'a başvuruda bulunursa, tüm işlemlerde MPI_IN_PLACE belirterek yerinde bir seçenek belirtebilirsiniz. sendcount ve sendtype parametreleri yoksayılır. Her işlem ilgili alma arabelleği öğesine veri girer. n. işlem, alma arabelleğinin n. öğesine veri gönderir. Kök işlem tarafından gönderilen verilerin alma arabelleğinde doğru yerde olduğu varsayılır.

  • sendcount [in]
    Gönderme arabelleğindeki öğelerin sayısı. Sendcount değeri sıfırsa, iletinin veri bölümü boş olur.

  • sendtype [in]
    Arabellekteki her öğenin veri türü.

  • recvbuf [out, isteğe bağlı]
    Kök işlem tarafından gönderilen veriler de dahil olmak üzere her işlemden alınan verileri içeren kök işlemdeki bir arabelleğe yönelik tanıtıcı. Bu parametre yalnızca kök işlemde önemlidir. recvbuf parametresi kök olmayan tüm işlemler için yoksayılır.

  • recvcounts[] [in, isteğe bağlı]
    Her işlemden alınan öğelerin sayısı. Dizideki her öğe, gönderme işleminin sırasına karşılık gelir. Sayı sıfırsa, iletinin veri bölümü boş olur. Bu parametre yalnızca kök işlemde önemlidir.

  • displs[] [in, isteğe bağlı]
    Her communicator işleminden verilerin recvbuf parametresine göre konumu. j işleminden alınan veriler, kök işlem uzaklığının alma arabelleğine yerleştirilir ve sendbuf işaretçisinden [j] öğeleri dağıtır.

    recvbuf, recvcounts ve displs parametre dizilerinde, her dizinin n. öğesi n. communicator işleminden alınan verilere başvurur.

    Bu parametre yalnızca kök işlemde önemlidir.

  • recvtype [in]
    Arabellekteki her öğenin veri türü. Bu parametre yalnızca kök işlemde önemlidir.

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

  • comm [in]
    MPI_Comm iletişimci 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_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR

Açıklamalar

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

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

Gereksinimler

Ürün

Microsoft MPI v7

Üst bilgi

Mpi.h; Mpif.h

Kitaplık

Msmpi.lib

DLL

Msmpi.dll

Ayrıca bkz.

MPI Kolektif İşlevleri

MPI_Datatype

MPI_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome