Difference between revisions of "Proc"

From Mesham
Jump to navigationJump to search
(Created page with '== Syntax == proc n where ''n'' is a variable or value == Semantics == This will limit execution of a block to a certain process == Example == proc 0 { print["Hello f…')
 
Line 1: Line 1:
 
== Syntax ==
 
== Syntax ==
  
proc n
+
proc n<br>
 +
{<br>
 +
  process body<br>
 +
}
  
where ''n'' is a variable or value
+
where ''n'' is a variable or value known at compile time.
  
 
== Semantics ==
 
== Semantics ==
  
This will limit execution of a block to a certain process
+
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.
  
 
== Example ==
 
== Example ==
  
  proc 0
+
#include <io>
{
+
  proc 0 {
     print["Hello from 0\n"];
+
     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''.
  
 
[[Category:Parallel]]
 
[[Category:Parallel]]

Revision as of 13:26, 12 January 2013

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>
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.