One recent advance in software technology is the development of software agents that can adapt to changes in their environment and can cooperate and coordinate their activities to complete a given task. Such agents can be distributed over a network.
Advances in hardware technology have meant that clusters of workstations can be used to create parallel virtual machines that bring the power of parallel computing to a much wider research and development community. Many software packages are now being developed to utilise such cluster environments.
In a cluster, each processor will be multitasking and running other jobs simultaneously with a distributed application that uses a message passing environment such as MPI. A typical application might be a large scale mesh-based computation, such as a finite element code, in which load balancing is equivalent to mesh partitioning. When the load is varying between processors within the cluster, distributing the computation in equal amounts may not deliver the optimum performance. Some machines may be very heavily loaded by other users while other processors may have no such additional load. It may be beneficial to measure current system information and use this information when balancing the load within a single distributed application program.
This thesis presents one approach to distributing workload more efficiently in a multi-user distributed environment by using mobile agents to collect system information which is then transmitted to all the MPI tasks. The thesis contains a review of software agents and mesh partitioning together with some numerical experiments and a paper.
Download BibTeX entry.