Intra-process Caching and Reuse of Threads
Creating and destroying threads on modern Linux systems incurs high latency, absent concurrency, and fails to scale as we increase concurrency. To address this concern we introduce a process-local cache of idle threads. Specifically, instead of destroying a thread when it terminates, we cache and th...
Saved in:
Main Authors | , |
---|---|
Format | Journal Article |
Language | English |
Published |
16.05.2021
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Abstract | Creating and destroying threads on modern Linux systems incurs high latency,
absent concurrency, and fails to scale as we increase concurrency. To address
this concern we introduce a process-local cache of idle threads. Specifically,
instead of destroying a thread when it terminates, we cache and then recycle
that thread in the context of subsequent thread creation requests. This
approach shows significant promise in various applications and benchmarks that
create and destroy threads rapidly and illustrates the need for and potential
benefits of improved concurrency infrastructure. With caching, the cost of
creating a new thread drops by almost an order of magnitude. As our experiments
demonstrate, this results in significant performance improvements for multiple
applications that aggressively create and destroy numerous threads. |
---|---|
AbstractList | Creating and destroying threads on modern Linux systems incurs high latency,
absent concurrency, and fails to scale as we increase concurrency. To address
this concern we introduce a process-local cache of idle threads. Specifically,
instead of destroying a thread when it terminates, we cache and then recycle
that thread in the context of subsequent thread creation requests. This
approach shows significant promise in various applications and benchmarks that
create and destroy threads rapidly and illustrates the need for and potential
benefits of improved concurrency infrastructure. With caching, the cost of
creating a new thread drops by almost an order of magnitude. As our experiments
demonstrate, this results in significant performance improvements for multiple
applications that aggressively create and destroy numerous threads. |
Author | Kogan, Alex Dice, Dave |
Author_xml | – sequence: 1 givenname: Dave surname: Dice fullname: Dice, Dave – sequence: 2 givenname: Alex surname: Kogan fullname: Kogan, Alex |
BackLink | https://doi.org/10.48550/arXiv.2105.07497$$DView paper in arXiv |
BookMark | eNotzstKxDAUgOEsdDGOPsCszFpoTXJOLl1K8TIwMCDdl5MmcQqaDomKvr04uvp3P98FO8tLjoxtpGjRaS1uqXzNn62SQrfCYmdX7Gab3ws1x7JMsVbe03SY8wunHPhz_KiRL4kPhxIp1Et2nui1xqv_rtnwcD_0T81u_7jt73YNGWsbTIDOghRRuqgU-C5oZZwxEDxYE5CsRjH5ZNErnFLnAniQsTPCYUoB1uz6b3vCjscyv1H5Hn_R4wkNP1WfPEk |
ContentType | Journal Article |
Copyright | http://creativecommons.org/licenses/by-nc-nd/4.0 |
Copyright_xml | – notice: http://creativecommons.org/licenses/by-nc-nd/4.0 |
DBID | AKY GOX |
DOI | 10.48550/arxiv.2105.07497 |
DatabaseName | arXiv Computer Science arXiv.org |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: GOX name: arXiv.org url: http://arxiv.org/find sourceTypes: Open Access Repository |
DeliveryMethod | fulltext_linktorsrc |
ExternalDocumentID | 2105_07497 |
GroupedDBID | AKY GOX |
ID | FETCH-LOGICAL-a677-4f3487310e18e223b9d5268663db376d4a7540cbf74b24cf98d3b31e96084ffd3 |
IEDL.DBID | GOX |
IngestDate | Mon Jan 08 05:49:22 EST 2024 |
IsDoiOpenAccess | true |
IsOpenAccess | true |
IsPeerReviewed | false |
IsScholarly | false |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-a677-4f3487310e18e223b9d5268663db376d4a7540cbf74b24cf98d3b31e96084ffd3 |
OpenAccessLink | https://arxiv.org/abs/2105.07497 |
ParticipantIDs | arxiv_primary_2105_07497 |
PublicationCentury | 2000 |
PublicationDate | 2021-05-16 |
PublicationDateYYYYMMDD | 2021-05-16 |
PublicationDate_xml | – month: 05 year: 2021 text: 2021-05-16 day: 16 |
PublicationDecade | 2020 |
PublicationYear | 2021 |
Score | 1.8017201 |
SecondaryResourceType | preprint |
Snippet | Creating and destroying threads on modern Linux systems incurs high latency,
absent concurrency, and fails to scale as we increase concurrency. To address
this... |
SourceID | arxiv |
SourceType | Open Access Repository |
SubjectTerms | Computer Science - Distributed, Parallel, and Cluster Computing |
Title | Intra-process Caching and Reuse of Threads |
URI | https://arxiv.org/abs/2105.07497 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwdV1NS8QwEB129-RFFJX1kxw8CdGmTdP0KIvrKqggFXor-QQvumx3F3--k6SiF6_NXGbC8N5Lpi8Al0YK5W2WYadlmnLDFZWFkLTQSEcRUYWNRtpPz2Lxxh_bsh0B-fkXRq2-3rfJH1j3N6hHymsEuboawzjPw8jW_UubLiejFdcQ_xuHHDN--gMS8z3YHdgduU3bsQ8j93EAVw_hAJUu00g-maXxRYISnry6Te_IpycNllTZ_hCa-V0zW9DhiQKqRFVR7gsk_MiQHJMOgVbXNtinIIpbjZ1ruaqQERntK65zbnwtbaEL5lA2SO69LY5ggirfTYEwpQ0rZW4cBjPmVOkcUh8ssGcGW-8YpjGxbplcKLqQcxdzPvl_6RR28jCEEexGxRlM1quNO0cUXeuLWMpv-8hwFA |
link.rule.ids | 228,230,786,891 |
linkProvider | Cornell University |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Intra-process+Caching+and+Reuse+of+Threads&rft.au=Dice%2C+Dave&rft.au=Kogan%2C+Alex&rft.date=2021-05-16&rft_id=info:doi/10.48550%2Farxiv.2105.07497&rft.externalDocID=2105_07497 |