Zero Assignment Parallel Processor. A virtual tree machine architecture in which a process tree is dynamically mapped onto a fixed, strongly connected network of processors communicating by message passing. The basic operation of each node is to apply a divide and conquer function which takes four arguments: (1) a function 'primitive' which takes a problem description (PD) and returns true if it can be solved without division, (2) a function 'solve' which takes a primitive PD and returns its solution, (3) a function 'divide' which takes a PD and returns a list of PDs of smaller problems and (4) a function 'combine' which returns the solution to a problem by combining a list of solutions of subproblems. Each node has a copy of the code and one is given the initial problem description. Task distribution is by process stealing in which a process constructs a descriptor for each subtask and idle (lightly loaded) processors can steal a descriptor from a physically connected neighbour. |