Schmaus F, Fischer F, Hönig T, Schröder-Preikschat W (2021)
Publication Type: Other publication type
Publication year: 2021
Edited Volumes: Technical reports / Department Informatik
Article Number: CS-2021-02
URI: https://opus4.kobv.de/opus4-fau/files/17655/paper.pdf
DOI: 10.25593/issn.2191-5008/CS-2021-02
Open Access Link: https://opus4.kobv.de/opus4-fau/files/17655/paper.pdf
Writing well-maintainable parallel programs that efficiently utilize many processor cores is still a significant challenge. Threads are hard to use, and so are event-based schemes. Furthermore, threads are affected by the blocking anomaly, that is, the loss of parallelism when threads execute a blocking system call—often resulting in low core utilization and unnecessarily high response times. This paper introduces pseudo-blocking system calls built upon modern asynchronous queue-based system-call techniques (like Linux’s io_uring) circumventing the blocking anomaly. They are similar to Go’s programming model, where one develops against a blocking interface to keep the code structure clean. However, instead of using synchronous non-blocking system calls as the underlying technique, our approach internally uses an asynchronous queue-based interface. We further present a novel architecture for concurrency platforms, like Cilk and Go, enabling low latencies and high throughput via pseudo-blocking system calls. Finally, we discuss future OS enhancements that would improve our proposed architecture. We implemented and evaluated a concurrency platform based on the concept of pseudo-blocking system calls. Our platform can outperform state-of-the-art systems like Go by 1.17× in a file-content search benchmark. It is able to increase the throughput of a echo-server benchmark by 4 % when compared to Go, and by 17.8 % when compared to Rust’s Tokio while improving the tail latency.
APA:
Schmaus, F., Fischer, F., Hönig, T., & Schröder-Preikschat, W. (2021). Modern Concurrency Platforms Require Modern System-Call Techniques.
MLA:
Schmaus, Florian, et al. Modern Concurrency Platforms Require Modern System-Call Techniques. 2021.
BibTeX: Download