Aracılığıyla paylaş


MPI_Recv işlevi

Alma işlemi gerçekleştirir ve eşleşen bir ileti alınana kadar döndürmez.

Söz dizimi

int MPIAPI MPI_Recv(
  _In_opt_ void         *buf,
           int          count,
           MPI_Datatype datatype,
           int          source,
           int          tag,
           MPI_Comm     comm,
  _Out_    MPI_Status   *status
);

Parametreler

  • buf [in, isteğe bağlı]
    Gönderilecek verileri içeren arabelleğe bir işaretçi.

  • Sayısı
    Arabellekteki öğelerin sayısı. İletinin veri bölümü boşsa count parametresini 0 olarak ayarlayın.

  • Datatype
    Arabellek dizisindeki öğelerin veri türü.

  • Kaynak
    Belirtilen iletişimci içindeki gönderme işleminin sırası. Herhangi bir kaynağın kabul edilebilir olduğunu belirtmek için MPI_ANY_SOURCE sabitini belirtin.

  • Etiket
    Farklı ileti türlerini ayırt etmek için kullanılan ileti etiketi. Herhangi bir etiketin kabul edilebilir olduğunu belirtmek için MPI_ANY_TAG sabitini belirtin.

  • Comm
    İletişimcinin tutamacı.

  • status [out]
    Dönüşte, alınan iletiyle ilgili bilgilerin depolandığı MPI_Status bir yapıya yönelik bir işaretçi içerir.

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_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR

Açıklamalar

Alınan iletinin uzunluğu alma arabelleğinin uzunluğundan küçük veya buna eşit olmalıdır. Tüm gelen veriler alma arabelleğine sığmazsa bu işlev taşma hatası döndürür.

Alınan ileti arabellekten daha kısaysa, arabelleğin yalnızca iletiye karşılık gelen bölümü değiştirilir. Arabelleğin geri kalanı değiştirilmez.

İşlemler kendilerine ileti gönderebilir. Ancak, bu engelleme gönderme ve alma işlemleri kilitlenmeye neden olabileceğinden, engelleme gönderme ve alma işlemleri, MPI_Send ve MPI_Recv ile bunu yapmak güvenli değildir.

Not

Gönderme ve alma işlemleri arasında bir asimetri vardır. Alma işlemi rastgele gönderenden gelen iletileri kabul edebilir, ancak gönderme işleminin benzersiz bir alıcı belirtmesi gerekir. Bu, veri aktarımının alıcı tarafından etkilendiği bir çekme stili yerine veri aktarımının gönderen tarafından etkilendiği bir gönderme stili uygular.

 

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 Noktadan Noktaya İşlevler

MPI_Send

MPI_Irecv

MPI_Datatype

MPI_Comm

MPI_Status