Load balancing distributed computing
Lehto, Riku (2020)
Lehto, Riku
2020
Tietotekniikan DI-tutkinto-ohjelma - Degree Programme in Information Technology, MSc (Tech)
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-05-22
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202004284023
https://urn.fi/URN:NBN:fi:tuni-202004284023
Tiivistelmä
Distributed computing is currently a popular way to harness great amounts of processing power by combining multiple computation resources together and distributing workloads over them. This way, the system is capable of providing much more processing power than any one computation resource can. By distributing work over multiple hardware components the system also gains fault tolerance, responsiveness and scalability. This thesis focuses on a system, which consists of multiple computation platforms with very little computational power on a local network, and how to schedule workloads to each of them.
We design a load balancer to handle requests for computational resources and computation client software capable of harnessing these resources. We build a computation server which also runs the computation client software with multiple times the computation power of one regular computation platform.
Multiple load balancing methods are designed for the load balancer to use and benchmarked to find the most performant one. We also benchmark the performance difference between a regular computation client and the computation server client and estimate how many regular clients one server can replace. The results show that one computation server can replace about 15 to 30 computation clients and that a simple scheduling algorithm with an index of where the scheduling was left off beats schedulers with more complicated logic. We also propose that further research should be done about the responsiveness of the algorithms.
The originality of this thesis has been checked using the Turnitin OriginalityCheck service.
We design a load balancer to handle requests for computational resources and computation client software capable of harnessing these resources. We build a computation server which also runs the computation client software with multiple times the computation power of one regular computation platform.
Multiple load balancing methods are designed for the load balancer to use and benchmarked to find the most performant one. We also benchmark the performance difference between a regular computation client and the computation server client and estimate how many regular clients one server can replace. The results show that one computation server can replace about 15 to 30 computation clients and that a simple scheduling algorithm with an index of where the scheduling was left off beats schedulers with more complicated logic. We also propose that further research should be done about the responsiveness of the algorithms.
The originality of this thesis has been checked using the Turnitin OriginalityCheck service.