مشاركة عبر


MPI_Recv الدالة

ينفذ عملية تلقي ولا يرجع حتى يتم تلقي رسالة مطابقة.

بناء الجملة

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

المعلمات

  • buf [in, optional]
    مؤشر إلى المخزن المؤقت الذي يحتوي على البيانات التي سيتم إرسالها.

  • count
    عدد العناصر في المخزن المؤقت. إذا كان جزء البيانات من الرسالة فارغا، فقم بتعيين معلمة العد إلى 0.

  • Datatype
    نوع بيانات العناصر في صفيف المخزن المؤقت.

  • مصدر
    مرتبة عملية الإرسال داخل communicator المحدد. حدد ثابت MPI_ANY_SOURCE لتحديد أن أي مصدر مقبول.

  • العلامه
    علامة الرسالة المستخدمة لتمييز أنواع مختلفة من الرسائل. حدد ثابت MPI_ANY_TAG للإشارة إلى أن أي علامة مقبولة.

  • الاتصالات
    المقبض إلى الموصل.

  • الحالة [خارج]
    عند الإرجاع، يحتوي على مؤشر إلى بنية MPI_Status حيث يتم تخزين معلومات حول الرسالة المستلمة.

القيمة المُرجعة

إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.

في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .

Fortran

    MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR

الملاحظات

يجب أن يكون طول الرسالة المستلمة أقل من أو يساوي طول المخزن المؤقت للاستلام. ترجع هذه الدالة خطأ تجاوز إذا كانت جميع البيانات الواردة لا تتناسب مع المخزن المؤقت للاستلام.

إذا كانت الرسالة المستلمة أقصر من المخزن المؤقت، يتم تعديل جزء المخزن المؤقت الذي يتوافق مع الرسالة فقط. لم يتم تعديل باقي المخزن المؤقت.

يمكن للعمليات إرسال رسائل إلى نفسها. ومع ذلك، من غير الآمن القيام بذلك مع عمليات حظر الإرسال والاستقبال، MPI_SendMPI_Recv، لأن عمليات الحظر هذه يمكن أن تتسبب في توقف تام.

ملاحظة

هناك عدم تماثل بين عمليات الإرسال والاستقبال. يمكن لعملية الاستلام قبول الرسائل من مرسل عشوائي، ولكن يجب أن تحدد عملية الإرسال جهاز استقبال فريدا. هذا ينفذ نمط دفع الاتصال، حيث يتم تنفيذ نقل البيانات من قبل المرسل، بدلا من نمط سحب حيث يتم نقل البيانات من قبل المتلقي.

 

المتطلبات

منتج

حزمة HPC Pack 2012 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 R2 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 MS-MPI القابلة لإعادة التوزيع أو حزمة HPC Pack 2008 للعميل

الرأس

Mpi.h؛ Mpif.h

المكتبة

Msmpi.lib

Dll

Msmpi.dll

راجع أيضًا

MPI Point to Point Functions

MPI_Send

MPI_Irecv

MPI_Datatype

MPI_Comm

MPI_Status