The objective: Distributed computing is the process of using several computers (clients) to solve a complex task. The clients communicate with a central server, which coordinates all computations. In a distributed computing network, clients are rarely all the same speed. It isn't efficient to simply divide the task equally among the clients, as some clients will be significantly faster than others.
A system called load balancing allows the faster clients to work more than the slower ones. The purpose of my project was to explore the relationship between overall performance and the number of clients in an internet-based distributed computing network, as well as investigate the need for proper load balancing.
I hypothesized that the more computers participating, the greater overall performance will be. In addition, the effect of load balancing would be most prominent if the computers used vary greatly in speed.
My experiment used six of my home computers. One acted as a server, while five others were clients. I designed and created my own distributed computing client and server software. I made two algorithms--one which divides the task equally, and one which incorporates advanced load balancing.
For each algorithm, I had the network complete the task with only one client, and then added more clients, one by one. Each client recorded its time to complete its sub-task, and the server recorded the time it took to complete the entire task.
Without load balancing, the network slowed down considerably when a slow client was added. With load balancing, however, adding a slower client would still benefit overall performance.
I found that adding more clients to an efficiently designed distributed computing network increases performance. Efficient networks need to incorporate load balancing. Without it, performance is bounded by the slowest client, i.e. slow clients will bog down the entire network.
When load balancing is added, all clients work for about the same amount of time, with the faster clients doing more than the slower ones. The net effect is that overall performance will always increase.
My results show that distributed computing, when implemented correctly, is an effective system that can utilize massive reserves of computing power to approach complex problems. This confirms my initial hypothesis.
This Mathematical project was to investigate how to efficiently design an internet-based distributed computing network, in which adding more clients will result in a performance increase
Science Fair Project done By David C. Liu