Difference between revisions of "Sync"

From Mesham
Jump to navigationJump to search
(Syntax)
m (6 revisions imported)
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
sync name;
 
sync name;
 +
 +
Where the optional ''name'' is a variable.
  
 
== Semantics ==
 
== Semantics ==
  
Will synchronise processes where they are needed. For instance, if using the asynchronous communication type, the programmer can synchronise with a variable name and the keyword will ensure all communications of that variable are up to date. One sided communication (variable sharing MPMD style in a par loop) is also linked into this keyword and it will ensure all communication is completed. Without a variable will synchronise all outstanding variables that need synchronising. If a process has no variables that need syncing then it will ignore this keyword and continue.
+
Will complete asynchronous communications and can act as a barrier involving all processes. This keyword is linked with default shared memory (RMA) communication and specific types such as the async communication type. If the programmer specifies an explicit variable name then this synchronisation will just occur for that variable, completing all outstanding communications for that specific variable only (without any global barrier.) In the absence of a variable then synchronisation (completing outstanding communications) shall occur for all variables followed by a global barrier. When asynchronous communication (via default shared memory RMA or explicit types) is involved, the value of the variables can only be guaranteed once a corresponding synchronisation (either with that variable or global, without any variable) has completed.
 +
 
 +
''Since: Version 0.5''
  
 
[[Category:Parallel]]
 
[[Category:Parallel]]

Latest revision as of 15:44, 15 April 2019

Syntax

sync name;

Where the optional name is a variable.

Semantics

Will complete asynchronous communications and can act as a barrier involving all processes. This keyword is linked with default shared memory (RMA) communication and specific types such as the async communication type. If the programmer specifies an explicit variable name then this synchronisation will just occur for that variable, completing all outstanding communications for that specific variable only (without any global barrier.) In the absence of a variable then synchronisation (completing outstanding communications) shall occur for all variables followed by a global barrier. When asynchronous communication (via default shared memory RMA or explicit types) is involved, the value of the variables can only be guaranteed once a corresponding synchronisation (either with that variable or global, without any variable) has completed.

Since: Version 0.5