|dc.description.abstract||The demand for computing power continues growing year by year. Meanwhile, sequential processing techniques are becoming insufficient for many complex problems. As a result, large-scale computing frameworks, such as cloud computing and grid computing, become necessary to fulfill the computing needs. A large-scale computing framework is usually comprised of distributed and heterogeneous computing resources.
The distributed and heterogeneous properties intricate system management, and may impose additional rules and restrictions on the environment while using it. The rules and restrictions are very likely to puzzle application developers and make application optimization difficult to achieve. Most systems in literature aim to optimize the throughput of the entire system, such as Condor, Globus Toolkit, and IOS. Those systems ignore individual application performance in most cases, and thus may not be fare to all users. Furthermore, they cannot handle the environment change seamlessly.
This research proposes an alternative computing model relating to cyber organisms, aiming to make applications smarter and more adaptive to environment changes. In this model, the computing environment is not responsible for application optimization and reconfiguration. Instead, it provides necessary information for each individual application through a standard interface. Each application consists of several processes to cooperate some given tasks. The sub-components are able to communicate with each other, sense the change of the environment, and react accordingly. Based on the proposed model, we implement a prototype using Message Passing Interface (MPI).
The major contribution of the proposed system is that the applications are self-manageable and self-provisioning. In other words, it can automatically add new processes to a right computing host, delete old processes from a wrong computing host, and move data to balance workload between hosts when the environment changes. Therefore, different applications can be optimized for different purposes. The experimental results confirm that our system can effectively adapt to the change of the environment and automatically improve application performance.