{"id":"https://openalex.org/W4381617105","doi":"https://doi.org/10.22152/programming-journal.org/2024/8/1","title":"McMini: A Programmable DPOR-Based Model Checker for Multithreaded Programs","display_name":"McMini: A Programmable DPOR-Based Model Checker for Multithreaded Programs","publication_year":2023,"publication_date":"2023-06-15","ids":{"openalex":"https://openalex.org/W4381617105","doi":"https://doi.org/10.22152/programming-journal.org/2024/8/1"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2024/8/1","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2024/8/1","pdf_url":"https://arxiv.org/pdf/2212.05468v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://arxiv.org/pdf/2212.05468v2","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5009903084","display_name":"Maxwell Pirtle","orcid":null},"institutions":[{"id":"https://openalex.org/I12912129","display_name":"Northeastern University","ror":"https://ror.org/04t5xt781","country_code":"US","type":"education","lineage":["https://openalex.org/I12912129"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Maxwell Pirtle","raw_affiliation_strings":["Northeastern University, USA"],"affiliations":[{"raw_affiliation_string":"Northeastern University, USA","institution_ids":["https://openalex.org/I12912129"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5016295834","display_name":"Luka Jovanovi\u0107","orcid":"https://orcid.org/0000-0001-6808-3461"},"institutions":[{"id":"https://openalex.org/I12912129","display_name":"Northeastern University","ror":"https://ror.org/04t5xt781","country_code":"US","type":"education","lineage":["https://openalex.org/I12912129"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Luka Jovanovic","raw_affiliation_strings":["Northeastern University, USA"],"affiliations":[{"raw_affiliation_string":"Northeastern University, USA","institution_ids":["https://openalex.org/I12912129"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5070983794","display_name":"Gene Cooperman","orcid":"https://orcid.org/0000-0003-2175-3848"},"institutions":[{"id":"https://openalex.org/I12912129","display_name":"Northeastern University","ror":"https://ror.org/04t5xt781","country_code":"US","type":"education","lineage":["https://openalex.org/I12912129"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Gene Cooperman","raw_affiliation_strings":["Northeastern University, USA"],"affiliations":[{"raw_affiliation_string":"Northeastern University, USA","institution_ids":["https://openalex.org/I12912129"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5009903084"],"corresponding_institution_ids":["https://openalex.org/I12912129"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.06750934,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"8","issue":"1","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9977999925613403,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10142","display_name":"Formal Methods in Verification","score":0.9937999844551086,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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.8342355489730835},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.833541989326477},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.5905328989028931},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.512535810470581}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8342355489730835},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.833541989326477},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.5905328989028931},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.512535810470581}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.22152/programming-journal.org/2024/8/1","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2024/8/1","pdf_url":"https://arxiv.org/pdf/2212.05468v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.22152/programming-journal.org/2024/8/1","is_oa":true,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2024/8/1","pdf_url":"https://arxiv.org/pdf/2212.05468v2","source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":false},"content_urls":{"pdf":"https://content.openalex.org/works/W4381617105.pdf"},"referenced_works_count":40,"referenced_works":["https://openalex.org/W1452568986","https://openalex.org/W1493367105","https://openalex.org/W1507116188","https://openalex.org/W1507484312","https://openalex.org/W1591717411","https://openalex.org/W1600980603","https://openalex.org/W1771135752","https://openalex.org/W1887412317","https://openalex.org/W1893845610","https://openalex.org/W1973938051","https://openalex.org/W1990838770","https://openalex.org/W2051016152","https://openalex.org/W2065832934","https://openalex.org/W2089003125","https://openalex.org/W2098035443","https://openalex.org/W2115309705","https://openalex.org/W2119541875","https://openalex.org/W2137398674","https://openalex.org/W2147540761","https://openalex.org/W2169870841","https://openalex.org/W2412976325","https://openalex.org/W2472899067","https://openalex.org/W2528919074","https://openalex.org/W2734336505","https://openalex.org/W2747419197","https://openalex.org/W2758909434","https://openalex.org/W2778798134","https://openalex.org/W2802543576","https://openalex.org/W2803481836","https://openalex.org/W2883559598","https://openalex.org/W2888321432","https://openalex.org/W2912456980","https://openalex.org/W2961546171","https://openalex.org/W2999366812","https://openalex.org/W3009455989","https://openalex.org/W3017319410","https://openalex.org/W4229664840","https://openalex.org/W4234708754","https://openalex.org/W4241222299","https://openalex.org/W4391285994"],"related_works":["https://openalex.org/W2748952813","https://openalex.org/W2404647514","https://openalex.org/W1667647204","https://openalex.org/W4247536566","https://openalex.org/W2018477250","https://openalex.org/W3119814709","https://openalex.org/W4241418540","https://openalex.org/W1508895727","https://openalex.org/W2725786787","https://openalex.org/W4283160672"],"abstract_inverted_index":{"Context":[0],"Model":[1],"checking":[2,39,308],"has":[3],"become":[4],"a":[5,157,238,242,256,273,347,351,358,437],"key":[6],"tool":[7],"for":[8,46,279,299,365,391,414],"gaining":[9],"confidence":[10],"in":[11,103,143,354],"correctness":[12],"of":[13,24,59,96,148,159,196,217,306,325,357,382,427],"multi-threaded":[14],"programs.Unit":[15],"tests":[16,19],"and":[17,63,220,270,284,316,375,430],"functional":[18],"do":[20,64],"not":[21,29,65],"suffice":[22],"because":[23],"race":[25,48],"conditions":[26,49,206],"that":[27,192,349,368,420],"are":[28,215,378],"discovered":[30],"by":[31,37,185,235,399,448],"those":[32],"tests.This":[33],"problem":[34],"is":[35,44,89,119,209,233,247,253,303,417],"addressed":[36],"model":[38,42,54,81,93,115,122,277,307,395,406],"tools.A":[40],"simple":[41],"checker":[43,123,278],"useful":[45,297],"detecting":[47],"prior":[50],"to":[51,83,92,134,136,154,161,187,199,258,267,311,320,386,405],"production.Inquiry":[52],"Current":[53],"checkers":[55,82,116,396],"hardwire":[56],"the":[57,94,97,104,175,188,194,355,371,424],"behavior":[58],"common":[60],"thread":[61,68,99,106,140,164,179,197,213,251,402,408,433],"operations,":[62,78,141,294],"recognize":[66],"application-dependent":[67],"paradigms":[69,298,367,393],"or":[70,108,146],"functions":[71,364],"using":[72,338],"simpler":[73],"primitive":[74,139,293],"operations.This":[75],"introduces":[76],"additional":[77],"causing":[79],"current":[80],"be":[84,200,226,312,445],"excessively":[85],"slow.In":[86],"addition,":[87],"there":[88],"no":[90],"mechanism":[91,131,151],"semantics":[95],"actual":[98],"wakeup":[100,165,231,261,328,409,413,425],"policies":[101,329,426],"implemented":[102,234],"underlying":[105],"library":[107],"operating":[109],"system.Eliminating":[110],"these":[111,183,392],"constraints":[112],"can":[113,225,444],"make":[114],"faster.Approach":[117],"McMini":[118,137,160,263],"an":[120,207,339],"extensible":[121,276],"based":[124],"on":[125,291,323,380],"DPOR":[126,189],"(Dynamic":[127],"Partial":[128],"Order":[129],"Reduction).A":[130],"was":[132,152,264,288,309],"invented":[133],"declare":[135,162,259],"new,":[138],"typically":[142],"100":[144],"lines":[145],"less":[147],"C":[149],"code.The":[150],"extended":[153],"also":[155,418],"allow":[156],"user":[158,176,181,257],"alternative":[163,260],"policies,":[166,410],"including":[167,411],"spurious":[168,342,359,412],"wakeups":[169,343],"from":[170],"condition":[171,244,282,326,376,415],"variables.Knowledge":[172],"In":[173],"McMini,":[174],"defines":[177],"new":[178,249,389],"operations.The":[180,384],"optimizes":[182],"operations":[184,214,224],"declaring":[186],"algorithm":[190],"information":[191],"reduces":[193],"number":[195],"schedules":[198],"searched.One":[201],"declares:":[202],"(i)":[203],"under":[204],"what":[205],"operation":[208,240,252],"enabled;":[210],"(ii)":[211],"which":[212,443],"independent":[216],"each":[218],"other;":[219],"(iii)":[221],"when":[222,237],"two":[223],"considered":[227],"as":[228,272,318],"co-enabled.An":[229],"optional":[230],"policy":[232,439],"defining":[236],"wait":[239],"(on":[241],"semaphore,":[243,281,374],"variable,":[245,283],"etc.)":[246,334],"enabled.A":[248],"enqueue":[250,340],"described,":[254],"allowing":[255],"policies.Grounding":[262],"first":[265],"confirmed":[266],"operate":[268],"correctly":[269],"efficiently":[271],"traditional,":[274],"but":[275],"mutex,":[280,373],"reader-writer":[285],"lock.McMini's":[286],"extensibility":[287],"then":[289,336,435],"tested":[290,337,345],"novel":[292],"representing":[295],"other":[296],"multithreaded":[300,366],"operations.An":[301],"example":[302],"readers-and-two-writers.The":[304],"speed":[305],"found":[310],"five":[313],"times":[314],"faster":[315,398],"more,":[317],"compared":[319],"traditional":[321,372],"implementations":[322],"top":[324,381],"variables.Alternative":[327],"(e.g.,":[330,440],"FIFO,":[331,441],"LIFO,":[332],"arbitrary,":[333],"were":[335,344],"operation.Finally,":[341],"with":[346],"program":[348],"exposes":[350],"bug":[352],"only":[353],"presence":[356],"wakeup.Importance":[360],"Many":[361],"applications":[362],"employ":[363],"go":[369],"beyond":[370],"variables.They":[377],"defined":[379],"basic":[383],"ability":[385,404],"directly":[387,446],"define":[388],"primitives":[390],"makes":[394],"run":[397],"searching":[400],"fewer":[401],"schedules.The":[403],"particular":[407,438],"variables,":[416],"important.Note":[419],"POSIX":[421,432],"leaves":[422],"undefined":[423],"pthread_mutex_lock,":[428],"sem_wait,":[429],"pthread_cond_wait.The":[431],"implementation":[434],"chooses":[436],"arbitrary),":[442],"modeled":[447],"McMini.":[449]},"counts_by_year":[],"updated_date":"2026-01-20T17:24:06.736184","created_date":"2025-10-10T00:00:00"}
