A study and implementation of self-adaptive allocation algorithm for parallel program

The application level load balancing problem that CPU time provided for each data unit is steady but CPU time needed by them is different has been drawing people's attention these years, but actually, the problem that CPU time needed by each data unit is the same but CPU time provided for them is non-steady has more practical value. This paper starts from the changing of provided CPU time for each computing process in a cluster, selects counter propagation neutral network as a basis from 3 predict methods, which can bring high accuracy but only cost a low complexity and can also well manage the interdependency of provided CPU time among the computing processes, then studies and implements an self-adaptive allocation algorithm for parallel programs. From the result of tests, the algorithm can largely raise the efficiency of parallel algorithms. Encapsulate this algorithm into MPI API for engineering applications, and as long as software developers substitute this API for message send and receive functions, adaptive allocation can be achieved. The API encapsulating the algorithm is especially applicable for Microsoft Windows Compute Cluster Server (WCCS) and it is the extension of this system.