TY - GEN
T1 - CAT
T2 - 38th Annual ACM Symposium on Applied Computing, SAC 2023
AU - Wang, Tsung Yen
AU - Wang, Shao Hua
AU - Tu, Chia Heng
AU - Liang, Wen Yew
N1 - Publisher Copyright:
© 2023 ACM.
PY - 2023/3/27
Y1 - 2023/3/27
N2 - Modern programming languages, such as Rust, have adopted the coroutine concept to better utilize computation resources and to improve program execution efficiency by allowing the overlap of the execution for asynchronous tasks. These programming languages often use the concept of userland thread library to dispatch the asynchronous tasks defined by the programmers. Nevertheless, it is often the case that the task scheduling on a user-space library is non-preemptive and would lead to unbounded execution time of a task.In this work, we aim to develop a tracing methodology to capture unbounded execution time of asynchronous tasks in Rust programs. Based on the analyses of the Rust standard library, we identify several execution contexts of asynchronous computation in Rust, and develop a portable context aware tracing methodology that is able to trace the execution time of nested asynchronous computation work across different Rust runtimes. We develop a framework, called CAT, to collect and visualize the asynchronous runtime activities. The results show that CAT can help pinpoint the asynchronous computation exhibiting prolonged execution time. We believe that CAT is a complement of existing tools to improve the execution efficiency of asynchronous operations in Rust.
AB - Modern programming languages, such as Rust, have adopted the coroutine concept to better utilize computation resources and to improve program execution efficiency by allowing the overlap of the execution for asynchronous tasks. These programming languages often use the concept of userland thread library to dispatch the asynchronous tasks defined by the programmers. Nevertheless, it is often the case that the task scheduling on a user-space library is non-preemptive and would lead to unbounded execution time of a task.In this work, we aim to develop a tracing methodology to capture unbounded execution time of asynchronous tasks in Rust programs. Based on the analyses of the Rust standard library, we identify several execution contexts of asynchronous computation in Rust, and develop a portable context aware tracing methodology that is able to trace the execution time of nested asynchronous computation work across different Rust runtimes. We develop a framework, called CAT, to collect and visualize the asynchronous runtime activities. The results show that CAT can help pinpoint the asynchronous computation exhibiting prolonged execution time. We believe that CAT is a complement of existing tools to improve the execution efficiency of asynchronous operations in Rust.
UR - http://www.scopus.com/inward/record.url?scp=85162855363&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85162855363&partnerID=8YFLogxK
U2 - 10.1145/3555776.3577669
DO - 10.1145/3555776.3577669
M3 - Conference contribution
AN - SCOPUS:85162855363
T3 - Proceedings of the ACM Symposium on Applied Computing
SP - 483
EP - 492
BT - Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, SAC 2023
PB - Association for Computing Machinery
Y2 - 27 March 2023 through 31 March 2023
ER -