Lock-Free Concurrency in Rust

dc.contributor.authorJinstrand, Lilly
dc.contributor.authorJulin, Marcus
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.departmentChalmers University of Technology / Department of Computer Science and Engineeringen
dc.contributor.examinerTsigas, Philippas
dc.contributor.supervisorVon Geijer, Kåre
dc.date.accessioned2025-09-10T09:46:03Z
dc.date.issued2024
dc.date.submitted
dc.description.abstractAmong the crucial data structures for modern high-performance systems is the fundamental concurrent lock-free FIFO queue. The programming languages selected for these systems typically prioritize speed and efficiency and consequently, these languages inherently lack safety and security in their designs. Due to these drawbacks, Rust was created to maintain the benefits associated with low-level languages while also providing safety and security. It stands as the most-loved language from 2016’s Stack Overflow developer survey to the most recent one in 2023, and since 2022 it has been rated as the most wanted. However, even though a popular language, not much research has been done to investigate Rust as a choice for these concurrent high-performance systems. In this paper, we are putting Rust up to the test, analyzing its suitability for highperformance concurrent lock-free programming. For this, we implement two concurrent lock-free FIFO queues in the Rust language, one classic and the other state-ofthe- art. These are then compared against their counterparts in C or C++ using a diverse set of measurements including throughput, energy, and memory. Additionally, perhaps as important, we assess our developer experience, providing a nuanced view of Rust’s ergonomics, and highlighting some differences with C++. Our comparative analysis shows that Rust is a viable option in a practical high-performance concurrent scenario. Its overall convenience and compatibility with traditional tools, combined with an ecosystem that includes a unique powerful tool exclusive to Rust, makes for a user-friendly and effective programming language and, we believe it is a candidate for high-performance concurrent lock-free programming.
dc.identifier.coursecodeDATX05
dc.identifier.urihttp://hdl.handle.net/20.500.12380/310444
dc.language.isoeng
dc.relation.ispartofseriesCSE 24-168
dc.setspec.uppsokTechnology
dc.subjectRust, lock-free, concurrency, concurrent, FIFO queue.
dc.titleLock-Free Concurrency in Rust
dc.type.degreeExamensarbete för masterexamensv
dc.type.degreeMaster's Thesisen
dc.type.uppsokH
local.programmeSoftware engineering and technology (MPSOF), MSc

Ladda ner

Original bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 24-168 MJ LJ.pdf
Storlek:
664.5 KB
Format:
Adobe Portable Document Format

License bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Storlek:
2.35 KB
Format:
Item-specific license agreed upon to submission
Beskrivning: