Aracılığıyla paylaş


MPI_Scatter işlevi

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

Ayrıca bkz.

MPI Kolektif İşlevleri

MPI_Datatype

MPI_Gather

MPI_Gatherv

MPI_Scatterv