next up previous contents
Next: Stopping an ALIAS-C++ procedure Up: Parallel version of ALIAS-Maple Previous: Parallel version of ALIAS-Maple   Contents

Introduction

Clearly most of the algorithms of the ALIAS-C++ library have a structure that allows a parallel implementation. Hence ALIAS-Maple offers a parallel version of most its problem solving procedures.

The general principle of the parallel version of the procedure available in ALIAS-Maple is to create a master program that will process the initial search domain until a fixed number $N$ of boxes remains to be processed. This master program will be run on the computer on which is run the Maple session. Then the master program, that maintains a list of unprocessed input intervals, will dispatch by an appropriate mechanism the input intervals to be processed to a slave program that will be run on different computers. This slave program will run a bisection process until some stop criteria is fulfilled: at this point the slave program will send back to the master program the list of unprocessed input intervals and, eventually, the solutions that have been found.

As soon as all the available computers have received an interval input to process the master process will check if any slave computer has terminated its job: if this is the case the master will retrieve the unprocessed boxes from the slave and add them to the list of boxes to be processed. Then new boxes will be sent to the free computers. If none of the slaves have terminated their jobs the master program will process the current box while monitoring if a slave as returned its result. As soon as this computation is performed the master program will again check if any slave computer has terminated its computation: if not it will process the next box in its list.

This process will be repeated until all the boxes in the master list have been processed and all the slaves are free.

The master and slave programs are created by writing an initial part which is problem dependent and by concatenating to this initial part a fixed code that depends only on the procedure that is used. The ALIAS distribution includes generic fixed codes (which are called Master and Slave followed by the Maple procedure name, e.g. MasterGeneralSolve.C, SlaveGeneralSolve.C).

For some procedures you may customize the fixed code by assigning the variables `ALIAS/master_program`, `ALIAS/slave_program` to a string that gives the name of your C++ code. To determine if you have such possibility look at the global variables at the on-line help for the procedure.


next up previous contents
Next: Stopping an ALIAS-C++ procedure Up: Parallel version of ALIAS-Maple Previous: Parallel version of ALIAS-Maple   Contents
Jean-Pierre Merlet 2012-12-20