{"id":"https://openalex.org/W4407690886","doi":"https://doi.org/10.1109/tpds.2025.3543442","title":"Libfork: Portable Continuation-Stealing With Stackless Coroutines","display_name":"Libfork: Portable Continuation-Stealing With Stackless Coroutines","publication_year":2025,"publication_date":"2025-02-18","ids":{"openalex":"https://openalex.org/W4407690886","doi":"https://doi.org/10.1109/tpds.2025.3543442"},"language":"en","primary_location":{"id":"doi:10.1109/tpds.2025.3543442","is_oa":false,"landing_page_url":"https://doi.org/10.1109/tpds.2025.3543442","pdf_url":null,"source":{"id":"https://openalex.org/S97130795","display_name":"IEEE Transactions on Parallel and Distributed Systems","issn_l":"1045-9219","issn":["1045-9219","1558-2183","2161-9883"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319808","host_organization_name":"Institute of Electrical and Electronics Engineers","host_organization_lineage":["https://openalex.org/P4310319808"],"host_organization_lineage_names":["Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Parallel and Distributed Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5110343945","display_name":"C. J. F. Williams","orcid":null},"institutions":[{"id":"https://openalex.org/I241749","display_name":"University of Cambridge","ror":"https://ror.org/013meh722","country_code":"GB","type":"education","lineage":["https://openalex.org/I241749"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Conor J. Williams","raw_affiliation_strings":["Department of Materials Science and Metallurgy, University of Cambridge, Cambridge, U.K"],"affiliations":[{"raw_affiliation_string":"Department of Materials Science and Metallurgy, University of Cambridge, Cambridge, U.K","institution_ids":["https://openalex.org/I241749"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5039540650","display_name":"James A. Elliott","orcid":"https://orcid.org/0000-0002-4887-6250"},"institutions":[{"id":"https://openalex.org/I241749","display_name":"University of Cambridge","ror":"https://ror.org/013meh722","country_code":"GB","type":"education","lineage":["https://openalex.org/I241749"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"James Elliott","raw_affiliation_strings":["Department of Materials Science and Metallurgy, University of Cambridge, Cambridge, U.K"],"affiliations":[{"raw_affiliation_string":"Department of Materials Science and Metallurgy, University of Cambridge, Cambridge, U.K","institution_ids":["https://openalex.org/I241749"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5110343945"],"corresponding_institution_ids":["https://openalex.org/I241749"],"apc_list":null,"apc_paid":null,"fwci":0.6954,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.65363642,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":95},"biblio":{"volume":"36","issue":"5","first_page":"877","last_page":"888"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11160","display_name":"Acoustic Wave Resonator Technologies","score":0.8123000264167786,"subfield":{"id":"https://openalex.org/subfields/2204","display_name":"Biomedical Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11160","display_name":"Acoustic Wave Resonator Technologies","score":0.8123000264167786,"subfield":{"id":"https://openalex.org/subfields/2204","display_name":"Biomedical Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10205","display_name":"Advanced Fiber Optic Sensors","score":0.7240999937057495,"subfield":{"id":"https://openalex.org/subfields/2208","display_name":"Electrical and Electronic Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10988","display_name":"Advanced Fiber Laser Technologies","score":0.711899995803833,"subfield":{"id":"https://openalex.org/subfields/3107","display_name":"Atomic and Molecular Physics, and Optics"},"field":{"id":"https://openalex.org/fields/31","display_name":"Physics and Astronomy"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8590342998504639},{"id":"https://openalex.org/keywords/continuation","display_name":"Continuation","score":0.8433825969696045},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5328457951545715},{"id":"https://openalex.org/keywords/processor-scheduling","display_name":"Processor scheduling","score":0.4137466251850128},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3359729051589966},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.29899266362190247}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8590342998504639},{"id":"https://openalex.org/C88626702","wikidata":"https://www.wikidata.org/wiki/Q1128903","display_name":"Continuation","level":2,"score":0.8433825969696045},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5328457951545715},{"id":"https://openalex.org/C2984822820","wikidata":"https://www.wikidata.org/wiki/Q1123036","display_name":"Processor scheduling","level":3,"score":0.4137466251850128},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3359729051589966},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.29899266362190247},{"id":"https://openalex.org/C68387754","wikidata":"https://www.wikidata.org/wiki/Q7271585","display_name":"Schedule","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/tpds.2025.3543442","is_oa":false,"landing_page_url":"https://doi.org/10.1109/tpds.2025.3543442","pdf_url":null,"source":{"id":"https://openalex.org/S97130795","display_name":"IEEE Transactions on Parallel and Distributed Systems","issn_l":"1045-9219","issn":["1045-9219","1558-2183","2161-9883"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319808","host_organization_name":"Institute of Electrical and Electronics Engineers","host_organization_lineage":["https://openalex.org/P4310319808"],"host_organization_lineage_names":["Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Parallel and Distributed Systems","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":39,"referenced_works":["https://openalex.org/W1514712409","https://openalex.org/W1807294333","https://openalex.org/W1965708711","https://openalex.org/W1966938284","https://openalex.org/W1967810725","https://openalex.org/W1969923711","https://openalex.org/W1971362265","https://openalex.org/W1985787017","https://openalex.org/W2016559894","https://openalex.org/W2019028742","https://openalex.org/W2036136174","https://openalex.org/W2045299099","https://openalex.org/W2046814629","https://openalex.org/W2054983537","https://openalex.org/W2072725684","https://openalex.org/W2108801243","https://openalex.org/W2109639089","https://openalex.org/W2146381930","https://openalex.org/W2148987260","https://openalex.org/W2170546198","https://openalex.org/W2176686728","https://openalex.org/W2295885203","https://openalex.org/W2469198586","https://openalex.org/W2516172998","https://openalex.org/W2783728688","https://openalex.org/W2963366311","https://openalex.org/W2996480042","https://openalex.org/W3134181251","https://openalex.org/W3174948292","https://openalex.org/W3202821777","https://openalex.org/W3205409564","https://openalex.org/W4210389905","https://openalex.org/W4242194760","https://openalex.org/W4246166885","https://openalex.org/W4312491464","https://openalex.org/W4320519724","https://openalex.org/W6631666057","https://openalex.org/W6642262933","https://openalex.org/W6856018046"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W2352275403","https://openalex.org/W2159885618","https://openalex.org/W1994937216","https://openalex.org/W2199313715","https://openalex.org/W2012352190","https://openalex.org/W1809394610","https://openalex.org/W2014085448"],"abstract_inverted_index":{"Fully-strict":[0],"fork-join":[1],"parallelism":[2,77],"is":[3,23,43,89,110,128],"a":[4,74,101],"powerful":[5],"model":[6],"for":[7,148],"shared-memory":[8],"programming":[9],"due":[10,26],"to":[11,27,52,91,106,124],"its":[12],"optimal":[13,93],"time-scaling":[14],"and":[15,71,98,116,134],"strong":[16],"bounds":[17],"on":[18,111,129],"memory":[19,144],"scaling.":[20],"The":[21],"latter":[22],"rarely":[24],"achieved":[25],"the":[28,48],"difficulty":[29],"of":[30,103],"implementing":[31],"continuation-stealing":[32],"in":[33,62],"traditional":[34],"High":[35],"Performance":[36],"Computing":[37],"(HPC)":[38],"languages":[39],"\u2013":[40],"where":[41],"it":[42],"often":[44],"impossible":[45],"without":[46],"modifying":[47],"compiler":[49],"or":[50],"resorting":[51],"non-portable":[53],"techniques.":[54],"We":[55,85],"demonstrate":[56,151],"how":[57],"stackless-coroutines":[58],"(a":[59],"new":[60],"feature":[61],"C<b>++</b><inline-formula><tex-math":[63],"notation=\"LaTeX\">$\\bm":[64],"{20}$</tex-math></inline-formula>)":[65],"can":[66],"enable":[67],"fully-portable":[68],"continuation":[69],"stealing":[70],"present":[72],"<i>libfork</i>":[73],"wait-free":[75],"fine-grained":[76],"library,":[78],"combining":[79],"coroutines":[80],"with":[81],"user-space,":[82],"geometric":[83],"segmented-stacks.":[84],"show":[86],"our":[87],"approach":[88],"able":[90],"achieve":[92],"time/memory":[94],"scaling,":[95],"both":[96],"theoretically":[97],"empirically,":[99],"across":[100],"variety":[102],"benchmarks.":[104],"Compared":[105],"openMP":[107],"(libomp),":[108],"libfork":[109,127],"average":[112,130],"<inline-formula><tex-math":[113,118,131,136],"notation=\"LaTeX\">$7.2\\times$</tex-math></inline-formula>":[114],"faster":[115,133],"consumes":[117,135],"notation=\"LaTeX\">$10\\times$</tex-math></inline-formula>":[119],"less":[120,138],"memory.":[121,139],"Similarly,":[122],"compared":[123],"Intel's":[125],"TBB,":[126],"notation=\"LaTeX\">$2.7\\times$</tex-math></inline-formula>":[132],"notation=\"LaTeX\">$6.2\\times$</tex-math></inline-formula>":[137],"Additionally,":[140],"we":[141],"introduce":[142],"non-uniform":[143],"access":[145],"(NUMA)":[146],"optimizations":[147],"schedulers":[149],"that":[150],"performance":[152],"matching":[153],"<i>busy-waiting</i>":[154],"schedulers.":[155]},"counts_by_year":[{"year":2025,"cited_by_count":1}],"updated_date":"2025-12-28T23:10:05.387466","created_date":"2025-10-10T00:00:00"}
