posted on 2022-12-01, 00:00authored byNilanjana Basu
Classical process execution models are successful but performance-wise can be highly inefficient under some common circumstances. New execution models such as kernel bypass techniques have been proposed to solve this problem. However, some of these models tend to trade off wasted CPU cycles for better performance and generally come at the cost of considerable programming effort for re-designing the application.
In our work, we propose novel and efficient execution models to achieve better application performance with high CPU utilization that can be applied automatically with little or no extra programming effort. We present two new execution models: (a) Compiler Interrupts (CI) for replacing busy polling threads with frequent interrupt-based polling in order to perform meaningful work in between, and (b) Compound Processes (CP) for loading mutually trusting and frequently interacting co-located applications in the same address space in order to bypass the expensive kernel-mediated communication by using shared address-space communication instead.
We evaluate CI and CP on a variety of micro-benchmarks, where they demonstrate compelling qualitative and quantitative improvements over the current state of the art. On three micro-benchmark suites of Parsec, Phoenix & Splash2, CI shows a median overhead of 4% vs. 800% for hardware interrupts. CP, on the other hand, shows a speedup of ≈20× for socket-based bidirectional communication and ≈5× for pipe-based unidirectional communication between loaded programs. CI is also evaluated on three systems-level applications, of which CI-based mTCP application achieves ≈2× stock mTCP throughput on a sample HTTP application.
History
Advisor
Eriksson, Jakob
Chair
Eriksson, Jakob
Department
Computer Science
Degree Grantor
University of Illinois at Chicago
Degree Level
Doctoral
Degree name
PhD, Doctor of Philosophy
Committee Member
Mansky, William
Venkatakrishnan, Venkat
Pina, Lui´s
Vamanan, Balajee
Kshemkalyani, Ajay
Devietti, Joseph