{"id":"https://openalex.org/W2997573239","doi":"https://doi.org/10.1186/s40294-019-0067-9","title":"A tale of lock-free agents: towards Software Transactional Memory in parallel Agent-Based Simulation","display_name":"A tale of lock-free agents: towards Software Transactional Memory in parallel Agent-Based Simulation","publication_year":2019,"publication_date":"2019-12-01","ids":{"openalex":"https://openalex.org/W2997573239","doi":"https://doi.org/10.1186/s40294-019-0067-9","mag":"2997573239"},"language":"en","primary_location":{"id":"doi:10.1186/s40294-019-0067-9","is_oa":true,"landing_page_url":"https://doi.org/10.1186/s40294-019-0067-9","pdf_url":"https://casmodeling.springeropen.com/track/pdf/10.1186/s40294-019-0067-9","source":{"id":"https://openalex.org/S3034459479","display_name":"Complex Adaptive Systems Modeling","issn_l":"2194-3206","issn":["2194-3206"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319965","host_organization_name":"Springer Nature","host_organization_lineage":["https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Complex Adaptive Systems Modeling","raw_type":"journal-article"},"type":"article","indexed_in":["crossref","doaj"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://casmodeling.springeropen.com/track/pdf/10.1186/s40294-019-0067-9","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5038728734","display_name":"Jonathan Thaler","orcid":"https://orcid.org/0000-0001-8736-0479"},"institutions":[{"id":"https://openalex.org/I142263535","display_name":"University of Nottingham","ror":"https://ror.org/01ee9ar58","country_code":"GB","type":"education","lineage":["https://openalex.org/I142263535"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Jonathan Thaler","raw_affiliation_strings":["University of Nottingham, 7301 Wollaton Rd, Nottingham, NG8 1BB, UK"],"raw_orcid":"https://orcid.org/0000-0001-8736-0479","affiliations":[{"raw_affiliation_string":"University of Nottingham, 7301 Wollaton Rd, Nottingham, NG8 1BB, UK","institution_ids":["https://openalex.org/I142263535"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5047408988","display_name":"Peer\u2010Olaf Siebers","orcid":"https://orcid.org/0000-0002-0603-5904"},"institutions":[{"id":"https://openalex.org/I142263535","display_name":"University of Nottingham","ror":"https://ror.org/01ee9ar58","country_code":"GB","type":"education","lineage":["https://openalex.org/I142263535"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Peer-Olaf Siebers","raw_affiliation_strings":["University of Nottingham, 7301 Wollaton Rd, Nottingham, NG8 1BB, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Nottingham, 7301 Wollaton Rd, Nottingham, NG8 1BB, UK","institution_ids":["https://openalex.org/I142263535"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5038728734"],"corresponding_institution_ids":["https://openalex.org/I142263535"],"apc_list":null,"apc_paid":null,"fwci":0.1858,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.58670635,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":"7","issue":"1","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9995999932289124,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9995999932289124,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9977999925613403,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12288","display_name":"Optimization and Search Problems","score":0.9915000200271606,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"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.8404418230056763},{"id":"https://openalex.org/keywords/software-transactional-memory","display_name":"Software transactional memory","score":0.8265966176986694},{"id":"https://openalex.org/keywords/transactional-memory","display_name":"Transactional memory","score":0.7759883403778076},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6294116377830505},{"id":"https://openalex.org/keywords/lock","display_name":"Lock (firearm)","score":0.6096925735473633},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.5522477626800537},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.49076566100120544},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.48670247197151184},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4766883850097656},{"id":"https://openalex.org/keywords/massively-parallel","display_name":"Massively parallel","score":0.47049733996391296},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.3642716705799103},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3275298774242401},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.19048964977264404}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8404418230056763},{"id":"https://openalex.org/C167149655","wikidata":"https://www.wikidata.org/wiki/Q1189004","display_name":"Software transactional memory","level":4,"score":0.8265966176986694},{"id":"https://openalex.org/C134277064","wikidata":"https://www.wikidata.org/wiki/Q878206","display_name":"Transactional memory","level":3,"score":0.7759883403778076},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6294116377830505},{"id":"https://openalex.org/C174839445","wikidata":"https://www.wikidata.org/wiki/Q1134386","display_name":"Lock (firearm)","level":2,"score":0.6096925735473633},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.5522477626800537},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.49076566100120544},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.48670247197151184},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4766883850097656},{"id":"https://openalex.org/C190475519","wikidata":"https://www.wikidata.org/wiki/Q544384","display_name":"Massively parallel","level":2,"score":0.47049733996391296},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.3642716705799103},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3275298774242401},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.19048964977264404},{"id":"https://openalex.org/C75949130","wikidata":"https://www.wikidata.org/wiki/Q848010","display_name":"Database transaction","level":2,"score":0.0},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.0},{"id":"https://openalex.org/C78519656","wikidata":"https://www.wikidata.org/wiki/Q101333","display_name":"Mechanical engineering","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1186/s40294-019-0067-9","is_oa":true,"landing_page_url":"https://doi.org/10.1186/s40294-019-0067-9","pdf_url":"https://casmodeling.springeropen.com/track/pdf/10.1186/s40294-019-0067-9","source":{"id":"https://openalex.org/S3034459479","display_name":"Complex Adaptive Systems Modeling","issn_l":"2194-3206","issn":["2194-3206"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319965","host_organization_name":"Springer Nature","host_organization_lineage":["https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Complex Adaptive Systems Modeling","raw_type":"journal-article"},{"id":"pmh:oai:doaj.org/article:dc2f8bffbcd64230af2a606ea4418777","is_oa":false,"landing_page_url":"https://doaj.org/article/dc2f8bffbcd64230af2a606ea4418777","pdf_url":null,"source":{"id":"https://openalex.org/S4306401280","display_name":"DOAJ (DOAJ: Directory of Open Access Journals)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Complex Adaptive Systems Modeling, Vol 7, Iss 1, Pp 1-28 (2019)","raw_type":"article"}],"best_oa_location":{"id":"doi:10.1186/s40294-019-0067-9","is_oa":true,"landing_page_url":"https://doi.org/10.1186/s40294-019-0067-9","pdf_url":"https://casmodeling.springeropen.com/track/pdf/10.1186/s40294-019-0067-9","source":{"id":"https://openalex.org/S3034459479","display_name":"Complex Adaptive Systems Modeling","issn_l":"2194-3206","issn":["2194-3206"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319965","host_organization_name":"Springer Nature","host_organization_lineage":["https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Complex Adaptive Systems Modeling","raw_type":"journal-article"},"sustainable_development_goals":[{"display_name":"Peace, Justice and strong institutions","score":0.7300000190734863,"id":"https://metadata.un.org/sdg/16"}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2997573239.pdf","grobid_xml":"https://content.openalex.org/works/W2997573239.grobid-xml"},"referenced_works_count":37,"referenced_works":["https://openalex.org/W67117139","https://openalex.org/W82399138","https://openalex.org/W99335134","https://openalex.org/W130366599","https://openalex.org/W180119731","https://openalex.org/W761179351","https://openalex.org/W2022790373","https://openalex.org/W2038543535","https://openalex.org/W2072794470","https://openalex.org/W2081219538","https://openalex.org/W2083343892","https://openalex.org/W2089755106","https://openalex.org/W2092911542","https://openalex.org/W2094786437","https://openalex.org/W2102547845","https://openalex.org/W2103594294","https://openalex.org/W2106104958","https://openalex.org/W2106552222","https://openalex.org/W2112774031","https://openalex.org/W2113417231","https://openalex.org/W2117848302","https://openalex.org/W2129990308","https://openalex.org/W2130220342","https://openalex.org/W2133183093","https://openalex.org/W2145790759","https://openalex.org/W2148049665","https://openalex.org/W2148301044","https://openalex.org/W2149502453","https://openalex.org/W2363930778","https://openalex.org/W2528277280","https://openalex.org/W2602799623","https://openalex.org/W2889011686","https://openalex.org/W2932919044","https://openalex.org/W2987832138","https://openalex.org/W3147731578","https://openalex.org/W4241754562","https://openalex.org/W4256363426"],"related_works":["https://openalex.org/W2088444093","https://openalex.org/W133473147","https://openalex.org/W2152491655","https://openalex.org/W2076409732","https://openalex.org/W924353067","https://openalex.org/W4252722439","https://openalex.org/W2992926879","https://openalex.org/W1144911151","https://openalex.org/W120707803","https://openalex.org/W2104221844"],"abstract_inverted_index":{"Abstract":[0],"With":[1],"the":[2,8,38,59,93,98,110,121,133,150,162,181,200,210,221,227,251,258,281],"decline":[3],"of":[4,12,112,123,135,161,166,183,206,216,237,260,265,283,287],"Moore\u2019s":[5],"law":[6],"and":[7,20,43,65,72,74,102,120,164,185,209,230,244,263,275,290,297],"ever":[9],"increasing":[10,204,214,235],"availability":[11],"cheap":[13],"massively":[14],"parallel":[15,25,48,113,140,167,293],"hardware,":[16],"it":[17,104],"becomes":[18],"more":[19,21],"important":[22],"to":[23,28,70,83,108,116,139,234,277],"embrace":[24],"programming":[26,95,114,153,294],"methods":[27],"implement":[29],"Agent-Based":[30,194],"Simulations":[31],"(ABS).":[32],"This":[33],"has":[34],"been":[35],"acknowledged":[36],"in":[37,78,97,128,147,157,169,177,189,280,292,295,302],"field":[39],"a":[40,136],"while":[41],"ago":[42],"numerous":[44],"research":[45],"on":[46,53,241,245],"distributed":[47],"ABS":[49,141,301],"exists,":[50],"focusing":[51],"primarily":[52],"Parallel":[54],"Discrete":[55],"Event":[56],"Simulation":[57],"as":[58],"underlying":[60],"mechanism.":[61],"However,":[62,91],"these":[63],"concepts":[64],"tools":[66],"are":[67],"inherently":[68],"difficult":[69],"master":[71],"apply":[73],"often":[75],"an":[76,284],"excess":[77],"case":[79,175],"implementers":[80],"simply":[81],"want":[82],"parallelise":[84],"their":[85],"own,":[86],"custom":[87],"agent-based":[88],"model":[89],"implementation.":[90],"with":[92,149],"established":[94],"languages":[96],"field,":[99],"Python,":[100],"Java":[101],"C++,":[103],"is":[105],"not":[106],"easy":[107],"address":[109],"complexities":[111,165],"due":[115],"unrestricted":[117,266],"side":[118,267],"effects":[119,268],"intricacies":[122],"low-level":[124],"locking":[125],"semantics.":[126],"Therefore,":[127],"this":[129],"paper":[130],"we":[131,179,197,256],"propose":[132],"use":[134],"lock-free":[137,186,222],"approach":[138],"using":[142],"Software":[143],"Transactional":[144],"Memory":[145],"(STM)":[146],"conjunction":[148],"pure":[151,252],"functional":[152,253],"language":[154,254],"Haskell,":[155],"which":[156,178],"combination,":[158],"removes":[159],"some":[160],"problems":[163],"implementations":[168,188,224],"imperative":[170],"approaches.":[171],"We":[172,218],"present":[173],"two":[174,190],"studies,":[176],"compare":[180],"performance":[182,202,212],"lock-based":[184,228],"STM":[187,223],"different":[191],"well":[192],"known":[193],"Models,":[195],"where":[196],"investigate":[198],"both":[199,240],"scaling":[201,211],"under":[203,213],"number":[205,215,236],"CPU":[207,238],"cores":[208,239],"agents.":[217],"show":[219],"that":[220],"consistently":[225],"outperform":[226],"ones":[229],"scale":[231],"much":[232],"better":[233],"local":[242],"hardware":[243],"Amazon":[246],"EC.":[247],"Further,":[248],"by":[249],"utilizing":[250],"Haskell":[255],"gain":[257],"benefits":[259],"immutable":[261],"data":[262],"lack":[264],"guaranteed":[269],"at":[270],"compile-time,":[271],"making":[272],"validation":[273],"easier":[274],"leading":[276],"increased":[278],"confidence":[279],"correctness":[282],"implementation,":[285],"something":[286],"fundamental":[288],"importance":[289],"benefit":[291],"general":[296],"scientific":[298],"computing":[299],"like":[300],"particular.":[303]},"counts_by_year":[{"year":2022,"cited_by_count":1}],"updated_date":"2026-05-06T08:25:59.206177","created_date":"2025-10-10T00:00:00"}
