Considering the first statement, i.e. that the computation in every simplex is independent suggests that the simplex could be the element of the parallelization, however the computation steps could be also parallelized in a simplex e.g. by solving the linearized functions and the n different equations of the simplex facets in parallel method. The main disadvantage of the parallelization inside the simplex is that the cost of the communication between two processes in PVM is very high. With respect to statements 'c', and 'd', the load-balancing is also important thing in our case, however, the capacity of the computers of the virtual machine may also also different.
The implemented parallel program is based on a master-slave structure, where the master program distributes the phase space to smaller pieces (domains) and the slaves figure out the equation system in these domains. The major functions of the master program:
Files are handled only by the master program thus the slaves never compete for accessing files in the NFS server. The slave program essentially contains the serial version of the described Simplex Algorithm and solves the equations in the domain given by the master. The values of the functions are computed once by the slave, when the slave gets a new domain from the master program. In this manner the function values are multiply computed only on the boundary points between the domains. To minimize the number of boundary points the master program tries to create domains with approximately equal orthogonal sizes.
The load-balancing is provided by the master, because the phase space is divided into more domains than the number of processors. When the computation in any domain has been finished, the master sends the next domain to the next free slave. In this way the faster processors will get more jobs then the slower processors.