Barrier - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


Grid

  

Barrier

  

block until all processes have reached this routine

 

Calling Sequence

Description

Examples

Compatibility

Calling Sequence

Barrier()

Description

• 

The Barrier command blocks all jobs initiated by the Launch command until all processes have executed the Barrier command.

• 

This is useful for synchronizing execution.  It can be used to force node 0 to wait for all other nodes to finish computing.

• 

This function is currently not available in "hpc" mode.

Examples

In this example nodes with a higher node number get more work to do than those with lower node numbers.  In fact, node 0 has virtually nothing to do and quickly exits.  Because the job is finished when node 0 is done, you will see very little or no output from the other nodes.

dosome := proc()
   uses Grid;
   local i, me;
   me := MyNode();
   for i from 1 to 10^(me+3) do
       if i mod 10^5 = 0 then
           print(me,i);
       end if;
   end do;
   print(me,"done");
end proc:

GridLaunchdosome,numnodes=4

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               0, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               2, 100000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               2, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 100000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 200000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 300000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 400000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 500000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 600000

This procedure is identical to the one above except that a call to Barrier is added at the end of the procedure.  This will force all nodes to wait and synchronize around that point.  Unlike the previous example, this time every node has a chance to finish.

doall:= proc()
   uses Grid;
   local i, me;
   me := MyNode();
   for i from 1 to 10^(me+3) do
       if i mod 10^5 = 0 then
           print(me,i);
       end if;
   end do;
   print(me,"done");
   Barrier();
end proc:

GridLaunchdoall,numnodes=4

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               0, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 100000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               2, 100000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               2, "done"

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 200000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 300000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 400000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 500000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 600000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 700000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 800000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, 900000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              3, 1000000

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               3, "done"

Compatibility

• 

The Grid[Barrier] command was introduced in Maple 15.

• 

For more information on Maple 15 changes, see Updates in Maple 15.

See Also

Grid

Grid:-Launch

Grid:-Setup