Aracılığıyla paylaş


MPI_Iscatterv işlevi

Söz dizimi

int MPIAPI MPI_Iscatterv(
  _In_opt_  const void         *sendbuf,
  _In_opt_  const int          sendcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype sendtype,
  _Out_opt_        void        *recvbuf,
  _In_            int          recvcount,
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parametreler

  • sendbuf [in, isteğe bağlı]
    Kök işlem tarafından gönderilecek verileri içeren arabelleğin işaretçisi.

    Bu parametre 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, isteğe bağlı]
    Her işleme gönderilecek öğe sayısı. sendcounts[i] sıfırsa, bu işlemin iletinin veri bölümü boş olur.

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

  • displs[] [in, isteğe bağlı]
    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 [in]
    Arabellekteki her öğenin veri türü.

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

  • recvbuf [out, isteğe bağlı]
    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 [in]
    Alma arabelleğindeki öğelerin sayısı. Sayı sıfırsa, iletinin veri bölümü boş olur.

  • recvtype [in]
    Alma arabelleğindeki öğelerin veri türü.

  • root [in]
    Belirtilen iletişimci içindeki gönderme işlemindeki derece.

  • comm [in]
    İletişim MPI_Comm tutamacı.

  • request [out]
    İletişim işlemini temsil eden MPI_Request tanıtıcısı.

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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Açıklamalar

Engelleyici olmayan bir çağrı, ayrı bir tamamlama çağrısında tamamlanması gereken bir toplu azaltma işlemi başlatır. İşlem başlatıldıktan sonra, katılan işlemlerdeki tüm hesaplamalardan veya diğer iletişimlerden bağımsız olarak ilerleyebilir. Bu şekilde, engelleyici olmayan azaltma işlemleri azaltma işlemlerini "arka planda" çalıştırarak olası eşitleme etkilerini azaltabilir.

Engelleyici olmayan azaltma işlemleri için tüm tamamlama çağrıları (örneğin , MPI_Wait) desteklenir.

Gereksinimler

Ürün

Microsoft MPI v7

Üst bilgi

Mpi.h; Mpif.h

Kitaplık

Msmpi.lib

DLL

Msmpi.dll

Ayrıca bkz.

MPI Kolektif İşlevleri

MPI_Datatype

MPI_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome