next up previous contents index
Next: 5.4 Empfangen und Entpacken Up: 5 PVM Parallel Virtual Previous: Definition und Erzeugung von

5.3 Packen und Versenden

Im folgenden wollen wir das Sprachkonstrukt

send chan tex2html_wrap_inline2828
implementieren.  Zur Verfügung stehen uns die PVM-Funktionen initsend, pk[typ] und send (u.U. mcast) mit den folgenden Spezifikationen.

int pvm_initsend (int encoding);
Initialisiert den Sendepuffer mit der Packungsmethode encoding.  
(Default ist Raw)

int pvm_pk[typ] (x *typ, int n, int s);
Packt n Elemente mit stride s von dem Array x vom Typ typ in den 
aktuellen Sendepuffer.

int pvm_send (tid: int; msgtag; int): int;
Senden des aktuellen Sendepuffers an task tid mit message tag msgtag.
   

Im Fehlerfall geben alle Routinen einen Wert < 0 zurück, sonst 0. typ kann sein: byte, int, long, float, complex, short, string und double.

Damit ist send chan tex2html_wrap_inline2713 tex2html_wrap_inline2396

       VAR x1: ARRAY [0..1] OF t1;
           ...
           xn: ARRAY [0..1] OF tn; 

           e:=pvm_initsend (PVMDataDefault):
           x1[0]:=v1;
           e:=pvm_pk[t1] (x1, 1, 1);
           ...
           xn[0]:=vn; 
           e:=pvm_pk[t1] (xn, 1, 1);
           e:= pvm_send (chan.task.tid, chan.msgtag);
 



parallel@rz.uni-mannheim.de
Mon Okt 28 14:38:25 PST 1996