Difference between revisions of "Proc"

From Mesham
Jump to navigationJump to search
(Semantics)
m (9 revisions imported)
 
(4 intermediate revisions by the same user not shown)
Line 11: Line 11:
  
 
This will limit execution of a block to a certain process whose rank is guaranteed to be that specified.<br><br>
 
This will limit execution of a block to a certain process whose rank is guaranteed to be that specified.<br><br>
''Note:'' A variable declared within a proc block and allocated multiple will in fact, by inference, be allocated to the group of processes which contains a single process who's rank is the same as the proc block's.<br>
+
''Note:'' A variable declared within a proc block and allocated multiple will in fact, by inference, be allocated to the group of processes which contains a single process who's rank is the same as the proc block's.
''Note:'' This is a blocking construct and regardless of arguments involves all processes who will either ignore it or execute the block.
 
  
 
== Example ==
 
== Example ==
  
 
  #include <io>
 
  #include <io>
  proc 0 {
+
  function void main() {
    print("Hello from 0\n");
+
    proc 0 {
};
+
      print("Hello from 0\n");
 +
    };
 
   
 
   
proc 1 {
+
    proc 1 {
    print("hello from 1\n");
+
      print("hello from 1\n");
 +
    };
 
  };
 
  };
  
 
The code example will run on two processes, the first will display the message ''Hello from 0'', whilst the second will output the message ''hello from 1''.
 
The code example will run on two processes, the first will display the message ''Hello from 0'', whilst the second will output the message ''hello from 1''.
  
 +
''Since: Version 0.41b''
 
[[Category:Parallel]]
 
[[Category:Parallel]]

Latest revision as of 15:44, 15 April 2019

Syntax

proc n
{
process body
}

where n is a variable or value known at compile time.

Semantics

This will limit execution of a block to a certain process whose rank is guaranteed to be that specified.

Note: A variable declared within a proc block and allocated multiple will in fact, by inference, be allocated to the group of processes which contains a single process who's rank is the same as the proc block's.

Example

#include <io>
function void main() {
   proc 0 {
      print("Hello from 0\n");
   };

   proc 1 {
      print("hello from 1\n");
   };
};

The code example will run on two processes, the first will display the message Hello from 0, whilst the second will output the message hello from 1.

Since: Version 0.41b