1PSEND(3PVM)                     PVM Version 3.4                    PSEND(3PVM)
2
3
4

NAME

6       pvm_psend - Pack and send data in one call.
7
8

SYNOPSIS

10       C    int info = pvm_psend( int tid, int msgtag, char *buf,
11                                  int len, int datatype )
12
13       Fortran   call pvmfpsend( tid, msgtag, buf, len, datatype,
14                               info )
15
16

PARAMETERS

18       tid     Integer task identifier of destination process.
19
20       msgtag  Integer  message tag supplied by the user.  msgtag should be >=
21               0.
22
23       buf     Pointer to a buffer to send.
24
25       len     Length of buffer (in multiple of data type size).
26
27       datatype
28               Type of data to which buf points (see below).
29
30       info    Integer status code returned by the routine.
31
32

DESCRIPTION

34       The routine pvm_psend takes a pointer to a buffer buf  its  length  len
35       and its data type datatype and sends this data directly to the PVM task
36       identified by tid.  msgtag is used to label the content of the message.
37       If  pvm_psend  is successful, info will be 0. If some error occurs then
38       info will be < 0.
39
40       pvm_psend data can be received by pvm_precv,  pvm_recv,  pvm_trecv,  or
41       pvm_nrecv.
42
43       The pvm_psend routine is asynchronous.  Computation on the sending pro‐
44       cessor resumes as soon as the buffer is safe for  reuse.   This  is  in
45       contrast  to synchronous communication, during which computation on the
46       sending processor halts until the matching receive is executed  by  the
47       receiving processor.
48
49       In  C the datatype parameter must be one of the following, depending on
50       the type of data to be sent:  [Version  3.3.0  -  This  parameter  only
51       determines  message  length,  not  data  conversion.  It only sends raw
52       bytes]
53           datatype    Data Type
54           PVM_STR     string
55           PVM_BYTE    byte
56           PVM_SHORT   short
57           PVM_INT     int
58           PVM_FLOAT   real
59           PVM_CPLX    complex
60           PVM_DOUBLE  double
61           PVM_DCPLX   double complex
62           PVM_LONG    long integer
63           PVM_USHORT  unsigned short int
64           PVM_UINT    unsigned int
65           PVM_ULONG   unsigned long int
66
67       In Fortran the same data types specified for pack should be used.
68
69       The PVM model guarantees the following about message order.  If task  1
70       sends  message A to task 2, then task 1 sends message B to task 2, mes‐
71       sage A will arrive at task 2 before message B.  Moreover, if both  mes‐
72       sages arrive before task 2 does a receive, then a wildcard receive will
73       always return message A.
74
75       pvm_psend does not affect the state of  the  current  outgoing  message
76       buffer (created by pvm_initsend and used by pvm_send).
77

WARNINGS

79       In  some  versions  of  PVM  (CM5,  I860 and PGON), messages sent using
80       pvm_psend must be received only by pvm_precv, likewise those sent  with
81       pvm_send   must  be  received  by  pvm_recv,  pvm_nrecv  or  pvm_trecv.
82       pvm_psend  is  not  compatible  with  pvm_recv   (nor   pvm_send   with
83       pvm_precv).    In   addition,   pvm_probe  is  not  interoperable  with
84       pvm_psend.
85
86       This problem occurs because nonstandard message headers  are  used  for
87       efficiency  in  the pvm_psend function.  In the generic Unix version of
88       PVM, the calls are fully interoperable.
89
90       The message tag space is shared between pvm_send and pvm_psend, so  you
91       must  be  careful  to avoid selecting the wrong message (for example by
92       using a wildcard to match the message).
93

EXAMPLES

95       C:
96           info = pvm_psend( tid, msgtag, array, 1000, PVM_FLOAT );
97
98       Fortran:
99           CALL PVMFPSEND( TID, MSGTAG, BUF, CNT, REAL4, INFO )
100
101

ERRORS

103       These error conditions can be returned by pvm_psend
104
105       PvmBadParam
106              giving an invalid tid, msgtag, or datatype.
107
108       PvmSysErr
109              pvmd not responding.
110

SEE ALSO

112       pvm_precv(3PVM), pvm_send(3PVM)
113
114
115
116                                15 March, 1994                     PSEND(3PVM)
Impressum