Modern Concurrency Platforms Require Modern System-Call Techniques

Please always quote using this URN: urn:nbn:de:bvb:29-opus4-176555
  • 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 codeWriting 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 architec- ture 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 imple- mented 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.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar Statistics
Metadaten
Author:Florian SchmausORCiD, Florian Fischer, Timo HönigORCiD, Wolfgang Schröder-Preikschat
Persistent identifiers - URN:urn:nbn:de:bvb:29-opus4-176555
Persistent identifiers - DOI:https://doi.org/10.25593/issn.2191-5008/CS-2021-02
ISSN:ISSN 2191-5008
Series (Volume number):Technical reports / Department Informatik (CS-2021-02)
Document Type:Report
Language:English
Year of publication:2021
Date of online publication (Embargo Date):2021/11/23
Publishing Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)
Release Date:2021/11/24
Tag:concurrency platform; concurrent programming; operating systems; parallel programming
Notes:
This work was partially funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – project number~146371743 – TRR 89 "Invasive Computing".
Institutes:Technische Fakultät
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 003 Systeme
open_access (DINI-Set):open_access
Licence (German):Creative Commons - CC BY - Namensnennung 4.0 International
Einverstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.