Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir grubun tüm üyelerinden veri toplar ve verileri grubun tüm üyelerine gönderir. MPI_Allgather işlevi, verileri yalnızca köke göndermek yerine tüm işlemlere göndermesi dışında MPI_Gather işlevine benzer. MPI_Allgather kullanım kuralları, MPI_Gather kurallarına karşılık gelir.
Söz dizimi
int MPIAPI MPI_Allgather(
_In_ void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
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 [in]
Sendbuf parametresinde belirtilen arabellekteki öğelerin sayısı. Sendcount değeri sıfırsa, iletinin veri bölümü boş olur.sendtype [in]
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.recvcount
Alma arabelleğindeki öğelerin sayısı. Sayı sıfırsa, iletinin veri bölümü boş olur.recvtype
Alma arabelleğindeki öğelerin 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_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR
Açıklamalar
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_ALLGATHER(...) başvuruda bulunursa, çağrısının sonucu, için n çağrısı MPI_Gather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,root,comm)root = 0 , ..., n-1yapılan tüm işlemler 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.
A grubundaki işlemler tarafından gönderilen öğe sayısı, B grubundaki işlemler tarafından gönderilen öğe sayısına eşit olmak zorunda değildir. Özellikle, ters yönde iletişim için sendcount == 0 belirterek verileri yalnızca bir yönde taşıyabilirsiniz.
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 |