BLQ: Light-Weight Locality-Aware Runtime for Blocking-Less Queuing

Qinzhe Wu, Ruihao Li, Jonathan Curtis Beard, Lizy K. John · 2024

Message queues are used widely in parallel processing systems for worker thread synchronization. When there is a throughput mismatch between the upstream and downstream tasks, the message queue buffer will often exist as either empty or full. Polling on an empty or full queue will affect the performance of upstream or downstream threads, since such polling cycles could have been spent on other computation. Non-blocking queue is an alternative that allow polling cycles to be spared for other tasks per applications’ choice. However, application programmers are not supposed to bear the burden, because a good decision of what to do upon blocking has to take many runtime environment information into consideration.

Read the paper · More papers on PaperTik