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 üyeden gelen verileri grubun tüm üyelerine dağıtır. MPI_Scatter işlevi, MPI_Gather işlevi tarafından gerçekleştirilen işlemin tersini gerçekleştirir.
Söz dizimi
int MPIAPI MPI_Scatter(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
MPI_Datatype recvtype,
int root,
MPI_Comm comm
);
Parametreler
sendbuf [in]
Kök işlem tarafından gönderilecek verileri içeren bir arabelleğe tanıtıcı.Sendbuf parametresi kök olmayan tüm işlemler için yoksayılır.
comm parametresi bir intracommunicator'a başvuruda bulunursa, kök işlemde MPI_IN_PLACE belirterek yerinde bir seçenek belirtebilirsiniz. recvcount ve recvtype parametreleri yoksayılır. Dağınık vektör hala n segment içerdiği kabul edilir; burada n grup boyutudur; kök işleme karşılık gelen segment taşınmaz.
sendcount
Gönderme arabelleğindeki öğelerin sayısı. Sendcount sıfırsa, iletinin veri bölümü boş olur.Sendcount parametresi kök olmayan tüm işlemler için yoksayılır.
sendtype
Arabellekteki her öğenin veri türü.Sendcount parametresi kök olmayan tüm işlemler için yoksayılır.
recvbuf [out]
Her işlemde alınan verileri içeren bir arabelleğe yönelik tanıtıcı. 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 veri türü.Kök
Belirtilen iletişimci içindeki gönderme işleminin sırası.Comm
İletişim MPI_Comm 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_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR
Açıklamalar
MPI_Scatter işlevinin etkisi, kök işlem MPI_Send işlevini kullanarak bir ileti gönderir gibi olur. Bu ileti, grubun her üyesi için bir tane olacak şekilde n eşit segmente bölünür. i. segment, gruptaki i. işleme gönderilir.
comm bir intracommunicator ise, sonuç kök tarafından yürütülen n gönderme işlemlerinin MPI_Send(sendbuf + i*sendcount*extent(sendtype), sendcount, sendtype, I, …)ve her işlemin bir alma MPI_Recv(recvbuf, recvcount, recvtype, i,…)işlemi yürütmesi gibi olur.
Kök işlem için sendcount ve sendtype parametreleri tarafından belirtilen tür imzası, recvcount tarafından belirtilen tür imzasına ve tüm işlemler için recvtype parametrelerine eşit olmalıdır. Bu nedenle, gönderilen veri miktarı herhangi bir işlem çifti arasında alınan veri miktarına eşit olmalıdır. Gönderen ve alıcı arasında ayrı tür eşlemelerine hala izin verilir.
Kök işlemde tüm işlev parametreleri önemlidir; diğer işlemlerde yalnızca recvbuf, recvcount, recvtype, root ve comm parametreleri önemlidir. Kök ve comm parametreleri tüm işlemlerde aynı olmalıdır.
Sayıların ve türlerin belirtimi kökte herhangi bir konumun birden çok kez okunmasına neden olmamalıdır.
comm parametresi bir intercommunicator'a başvuruda bulunursa, çağrı ara iletişim aracındaki tüm işlemleri içerir, ancak kök işlemi tanımlayan bir grup olan A grubuyla birlikte kullanılır. Diğer gruptaki B grubundaki tüm işlemler, kök parametrede aynı değeri, yani A grubundaki kök işlemin sıralamasını ayarlar. Kök işlem, kök parametresinde MPI_ROOT değerini ayarlar. A grubundaki diğer tüm işlemler kök parametrede MPI_PROC_NULL değeri ayarlar. Veriler kök işlemden B grubundaki tüm işlemlere yayınlanır. B grubundaki işlemlerin arabellek parametreleri, kök işlemin arabellek parametresiyle tutarlı olmalıdır.
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 |