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.