Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pvm_send(3pvm) [linux man page]

SEND(3PVM)							  PVM Version 3.4							SEND(3PVM)

NAME
pvm_send - Immediately sends the data in the active message buffer. SYNOPSIS
C int info = pvm_send( int tid, int msgtag ) Fortran call pvmfsend( tid, msgtag, info ) PARAMETERS
tid Integer task identifier of destination process. msgtag Integer message tag supplied by the user. msgtag should be >= 0. info Integer status code returned by the routine. DESCRIPTION
The routine pvm_send sends a message stored in the active send buffer to the PVM process identified by tid. msgtag is used to label the content of the message. If pvm_send is successful, info will be 0. If some error occurs then info will be < 0. The pvm_send routine is asynchronous. Computation on the sending processor resumes as soon as the message is safely on its way to the receiving processor. This is in contrast to synchronous communication, during which computation on the sending processor halts until the matching receive is executed by the receiving processor. The PVM model guarantees the following about message order. If task 1 sends message A to task 2, then task 1 sends message B to task 2, message A will arrive at task 2 before message B. Moreover, if both messages arrive before task 2 does a receive, then a wildcard receive will always return message A. Terminating a PVM task immediately after sending a message or messages from it may result in those messages being lost. To be sure, always call pvm_exit() before stopping. EXAMPLES
C: info = pvm_initsend( PvmDataDefault ); info = pvm_pkint( array, 10, 1 ); msgtag = 3 ; info = pvm_send( tid, msgtag ); Fortran: CALL PVMFINITSEND(PVMRAW, INFO) CALL PVMFPACK( REAL8, DATA, 100, 1, INFO ) CALL PVMFSEND( TID, 3, INFO ) ERRORS
These error conditions can be returned by pvm_send PvmBadParam giving an invalid tid or a msgtag. PvmSysErr pvmd not responding. PvmNoBuf no active send buffer. Try pvm_initsend() before send. SEE ALSO
pvm_initsend(3PVM), pvm_mcast(3PVM), pvm_pack(3PVM), pvm_psend(3PVM), pvm_recv(3PVM) 30 August, 1993 SEND(3PVM)

Check Out this Related Man Page

RECV(3PVM)							  PVM Version 3.4							RECV(3PVM)

NAME
pvm_recv - Receive a message. SYNOPSIS
C int bufid = pvm_recv( int tid, int msgtag ) Fortran call pvmfrecv( tid, msgtag, bufid ) PARAMETERS
tid Integer task identifier of sending process supplied by the user. msgtag Integer message tag supplied by the user. msgtag should be >= 0. bufid Integer returns the value of the new active receive buffer identifier. Values less than zero indicate an error. DESCRIPTION
The routine pvm_recv blocks the process until a message with label msgtag has arrived from tid. pvm_recv then places the message in a new active receive buffer, which also clears the current receive buffer. A -1 in msgtag or tid matches anything. This allows the user the following options. If tid = -1 and msgtag is defined by the user, then pvm_recv will accept a message from any process which has a matching msgtag. If msgtag = -1 and tid is defined by the user, then pvm_recv will accept any message that is sent from process tid. If tid = -1 and msgtag = -1, then pvm_recv will accept any message from any process. The PVM model guarantees the following about message order. If task 1 sends message A to task 2, then task 1 sends message B to task 2, message A will arrive at task 2 before message B. Moreover, if both messages arrive before task 2 does a receive, then a wildcard receive will always return message A. If pvm_recv is successful, bufid will be the value of the new active receive buffer identifier. If some error occurs then bufid will be < 0. pvm_recv is blocking which means the routine waits until a message matching the user specified tid and msgtag values arrives at the local pvmd. If the message has already arrived then pvm_recv returns immediately with the message. Once pvm_recv returns, the data in the message can be unpacked into the user's memory using the unpack routines. EXAMPLES
C: tid = pvm_parent(); msgtag = 4 ; bufid = pvm_recv( tid, msgtag ); info = pvm_upkint( tid_array, 10, 1 ); info = pvm_upkint( problem_size, 1, 1 ); info = pvm_upkfloat( input_array, 100, 1 ); Fortran: CALL PVMFRECV( -1, 4, BUFID ) CALL PVMFUNPACK( INTEGER4, TIDS, 25, 1, INFO ) CALL PVMFUNPACK( REAL8, MATRIX, 100, 100, INFO ) ERRORS
These error conditions can be returned by pvm_recv PvmBadParam giving an invalid tid value, or msgtag < -1. PvmSysErr pvmd not responding. SEE ALSO
pvm_bufinfo(3PVM), pvm_getminfo(3PVM), pvm_nrecv(3PVM), pvm_unpack(3PVM), pvm_probe(3PVM), pvm_send(3PVM), pvm_mcast(3PVM) 30 August, 1993 RECV(3PVM)
Man Page