Difference between revisions of "Ready"

From Mesham
Jump to navigationJump to search
(Created page with ' == Syntax == ready[ ] == Semantics == The ''ready'' type will force P2P Send to start only if a matching receive has been posted by the target processor. When used in conjunc…')
 
Line 1: Line 1:
== Syntax ==
+
== Syntax ==
  
 
ready[ ]
 
ready[ ]

Revision as of 19:49, 10 January 2010

Syntax

ready[ ]

Semantics

The ready type will force P2P Send to start only if a matching receive has been posted by the target processor. When used in conjunction with the nonblocking type, communication start will wait until a matching receive is posted. This type acts as a form of handshaking and can improve performance in some uses.

Example

var a:Int::allocated[single[on[1]]];
var b:Int::allocated[single[on[2]]] :: ready[];
var c:Int::allocated[single[on[2]]] :: ready[] :: nonblocking[];
a:=b;
a:=c;

The send of assignment a:=b will only begin once the receive from process 1 has been issued. With the statement a:=c the send, even though it is nonblocking, will only start once a matching receive has been issued too.