Aracılığıyla paylaş


MPI_Scatterv işlevi

Bir üyeden gelen verileri grubun tüm üyelerine dağıtır. MPI_Scatterv işlevi, MPI_Gatherv işlevi tarafından gerçekleştirilen işlemin tersini gerçekleştirir.

Söz dizimi

int MPIAPI MPI_Scatterv(
  _In_  void         *sendbuf,
  _In_  int          *sendcounts,
  _In_  int          *displs,
        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 arabelleğin işaretçisi.

    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.

  • sendcounts [in]
    Her işleme gönderilecek öğe sayısı. sendcount[i] sıfırsa, bu işlemin iletinin veri bölümü boş olur.

    Sendcount parametresi kök olmayan tüm işlemler için yoksayılır.

  • displs [in]
    Her bir communicator işlemine gönderilecek verilerin konumları. Dizideki her konum sendbuf dizisinin karşılık gelen öğesine göredir.

    Sendbuf, sendcounts ve displs parametre dizilerinde, her dizinin n. öğesi n. communicator işlemine gönderilecek verileri ifade eder.

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

  • sendtype
    Arabellekteki her öğenin MPI 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 arabelleğe yönelik 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 veri türü.

  • Kök
    Belirtilen iletişimci içindeki gönderme işlemindeki derece.

  • 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_SCATTERV(SENDBUF, SENDCOUNT, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, DISPLS(*), RECVCOUNT(*), RECVTYPE, ROOT, COMM, IERROR

Açıklamalar

MPI_Scatterv işlevi, sendcounts dizisinde belirtilen farklı veri sayısının her işleme gönderilmesine izin vererek MPI_Scatter işlevinin işlevselliğini genişletir.

Sayıların, türlerin ve yer değiştirmelerin belirtimi kökte herhangi bir konumun birden çok kez okunmasına neden olmamalıdır.

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.

sendcount tarafından belirtilen tür imzası ve kök işlem için sendtype parametreleri, 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.

comm bir intracommunicator ise, sonuç kök tarafından yürütülen n gönderme işlemlerinin MPI_Send(sendbuf + displs[i]*extent(sendtype), sendcounts[i], sendtype, I, …)ve her işlemin bir alma MPI_Recv(recvbuf, recvcount, recvtype, i,…)işlemi yürütmesi gibi olur.

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_Scatter