Scheduling in C++

OData support
Rajacsics Tamás
Department of Automation and Applied Informatics

In our constantly accelerating life, the high performance of a

computer system is a competitive advantage. Continuous hardware

improvements, parallelization, distributed systems and \emph{the cloud}

raise the stakes higher each day, but only the best software

can fully utilize such resources. Without careful scheduling, not even

the most expensive hardware can scale. This paper focuses on

micro-scheduling at the implementation level.

Chapter 1 explains the motivation behind scheduling.

It asserts the importance of benchmarking, describes important

performance metrics and introduces a benchmark framework which

efficiently measures those.

Chapter 2 introduces multiple solutions implementing

the same application interface using different scheduling

mechanisms. It shows and explains the benchmark results of each

and compares them to each other.

Chapter 3 analyzes the strengths and weaknesses of previous

architectures, and efficiently combines two of them to form

an even more powerful solution, proven by benchmarking.

Beyond the large scale details, it also showcases some

low level optimization tricks. The paper concludes with

some advanced ideas on further performance improvements.


Please sign in to download the files of this thesis.