Aracılığıyla paylaş


MPI_Allgatherv işlevi

Bir grubun her üyesinden değişken miktarda veri toplar ve verileri grubun tüm üyelerine gönderir. MPI_Allgatherv işlevi MPI_Gatherv gibidir, ancak tüm işlemler yalnızca kök yerine sonucu alır. j. işleminden gönderilen veri bloğu her işlem tarafından alınır ve arabellek recvbuf'unj. bloğuna yerleştirilir. Bu blokların tümünün aynı boyutta olması gerekmez.

Söz dizimi

int MPIAPI MPI_Allgatherv(
  _In_  void         *sendbuf,
        int          sendcount,
        MPI_Datatype sendtype,
  _Out_ void         *recvbuf,
  _In_  int          *recvcounts,
  _In_  int          *displs,
        MPI_Datatype recvtype,
        MPI_Comm     comm
);

Parametreler

  • sendbuf [in]
    Gruptaki tüm işlemlere gönderilecek verilerin işaretçisi. Arabellekteki öğelerin sayısı ve veri türü sendcount ve sendtype parametrelerinde belirtilir. Arabellekteki her öğe gruptaki bir işleme karşılık gelir.

    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.

  • sendcount
    Bu işlemin sendbuf parametresinde belirtilen arabellekte gönderdiği veri öğelerinin sayısı. sendcount içindeki bir öğe sıfırsa, bu işlemdeki iletinin veri bölümü boş olur.

  • sendtype
    Gönderme arabelleğindeki öğelerin MPI veri türü.

  • recvbuf [out]
    Her işlemden alınan verileri içeren bir arabelleğe işaretçi. Arabellekteki öğelerin sayısı ve veri türü recvcount ve recvtype parametrelerinde belirtilir.

  • recvcounts [in]
    Alma arabelleğindeki her communicator işleminden veri öğelerinin sayısı.

  • displs [in]
    Her communicator işleminden verilerin recvbuf parametresine göre konumu.

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

  • recvtype
    Arabellekteki her öğenin MPI veri türü.

  • Comm
    MPI_Comm iletişimci tutamacı.

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_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE,COMM, IERROR)
        <type> SENDBUF(*), R.ECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR

Açıklamalar

MPI_Allgatherv kullanım kuralları, MPI_Gatherv kurallarına karşılık gelir.

Bir işlemdeki sendtype parametresiyle ilişkilendirilmiş tür imzası, herhangi bir işlemdeki recvtype parametresiyle ilişkili tür imzasına eşit olmalıdır.

comm parametresi bir intracommunicator'a MPI_Allgatherv(...)başvuruda bulunursa, çağrısının sonucu, yürütülen MPI_GatherV(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs,recvtype,root,comm)tüm işlemler için root = 0 , ..., n-1çağrısı gibi olur.

comm parametresi bir intercommunicator'a başvuruda bulunursa, bir grubun her işlemi (örneğin, A grubu), sendcount parametresinde belirtilen veri öğelerinin sayısına katkıda bulunur. Bu veriler birleştirilir ve sonuç B grubundaki diğer gruptaki her işlemde depolanır. Buna karşılık, B grubundaki işlemlerin verilerinin birleştirilmiş olması A grubundaki her işlemde depolanır. A grubundaki gönderme arabellek parametreleri, B grubundaki alma arabellek parametreleriyle tutarlı olmalıdır ve bunun tersi de geçerlidir.

Gereksinimler

Ürün

HPC Pack 2012 MS-MPI Yeniden Dağıtılabilir Paketi, HPC Pack 2008 R2 MS-MPI Yeniden Dağıtılabilir Paketi, HPC Pack 2008 MS-MPI Yeniden Dağıtılabilir Paketi veya HPC Pack 2008 İstemci Yardımcı Programları

Üst bilgi

Mpi.h; Mpif.h

Kitaplık

Msmpi.lib

DLL

Msmpi.dll

Ayrıca bkz.

MPI Kolektif İşlevleri

MPI_Gatherv

MPI_Datatype