{"id":"https://openalex.org/W4403223278","doi":"https://doi.org/10.1145/3689771","title":"HybridSA: GPU Acceleration of Multi-pattern Regex Matching using Bit Parallelism","display_name":"HybridSA: GPU Acceleration of Multi-pattern Regex Matching using Bit Parallelism","publication_year":2024,"publication_date":"2024-10-08","ids":{"openalex":"https://openalex.org/W4403223278","doi":"https://doi.org/10.1145/3689771"},"language":"en","primary_location":{"id":"doi:10.1145/3689771","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3689771","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3689771","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5044196182","display_name":"Alexis Le Glaunec","orcid":"https://orcid.org/0000-0002-5444-5924"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Alexis Le Glaunec","raw_affiliation_strings":["Rice University, Houston, USA"],"raw_orcid":"https://orcid.org/0000-0002-5444-5924","affiliations":[{"raw_affiliation_string":"Rice University, Houston, USA","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5064966549","display_name":"Lingkun Kong","orcid":"https://orcid.org/0000-0003-0672-2998"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Lingkun Kong","raw_affiliation_strings":["Rice University, Houston, USA"],"raw_orcid":"https://orcid.org/0000-0003-0672-2998","affiliations":[{"raw_affiliation_string":"Rice University, Houston, USA","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5052392314","display_name":"Konstantinos Mamouras","orcid":"https://orcid.org/0000-0003-1209-7738"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Konstantinos Mamouras","raw_affiliation_strings":["Rice University, Houston, USA"],"raw_orcid":"https://orcid.org/0000-0003-1209-7738","affiliations":[{"raw_affiliation_string":"Rice University, Houston, USA","institution_ids":["https://openalex.org/I74775410"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5044196182"],"corresponding_institution_ids":["https://openalex.org/I74775410"],"apc_list":null,"apc_paid":null,"fwci":1.6557,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.86678893,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":96,"max":98},"biblio":{"volume":"8","issue":"OOPSLA2","first_page":"1699","last_page":"1728"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11269","display_name":"Algorithms and Data Compression","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T11269","display_name":"Algorithms and Data Compression","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T12326","display_name":"Network Packet Processing and Optimization","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T12029","display_name":"DNA and Biological Computing","score":0.9919000267982483,"subfield":{"id":"https://openalex.org/subfields/1312","display_name":"Molecular Biology"},"field":{"id":"https://openalex.org/fields/13","display_name":"Biochemistry, Genetics and Molecular Biology"},"domain":{"id":"https://openalex.org/domains/1","display_name":"Life Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7930865287780762},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.7646694183349609},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.6457392573356628},{"id":"https://openalex.org/keywords/acceleration","display_name":"Acceleration","score":0.4913560450077057},{"id":"https://openalex.org/keywords/data-parallelism","display_name":"Data parallelism","score":0.48868468403816223},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.4650576710700989},{"id":"https://openalex.org/keywords/bit","display_name":"Bit (key)","score":0.4188327193260193},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.41064387559890747},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.32578885555267334},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.15478426218032837},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.1490464210510254},{"id":"https://openalex.org/keywords/physics","display_name":"Physics","score":0.054442644119262695}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7930865287780762},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7646694183349609},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.6457392573356628},{"id":"https://openalex.org/C117896860","wikidata":"https://www.wikidata.org/wiki/Q11376","display_name":"Acceleration","level":2,"score":0.4913560450077057},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.48868468403816223},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.4650576710700989},{"id":"https://openalex.org/C117011727","wikidata":"https://www.wikidata.org/wiki/Q1278488","display_name":"Bit (key)","level":2,"score":0.4188327193260193},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.41064387559890747},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.32578885555267334},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.15478426218032837},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1490464210510254},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.054442644119262695},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C74650414","wikidata":"https://www.wikidata.org/wiki/Q11397","display_name":"Classical mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3689771","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3689771","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3689771","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3689771","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G4367849889","display_name":null,"funder_award_id":"2313062","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":37,"referenced_works":["https://openalex.org/W1515839227","https://openalex.org/W1707172707","https://openalex.org/W1980938256","https://openalex.org/W1981409766","https://openalex.org/W2007130296","https://openalex.org/W2030102079","https://openalex.org/W2032377275","https://openalex.org/W2045821558","https://openalex.org/W2058950969","https://openalex.org/W2062949766","https://openalex.org/W2067845746","https://openalex.org/W2072607050","https://openalex.org/W2077450865","https://openalex.org/W2077934944","https://openalex.org/W2087634916","https://openalex.org/W2099964107","https://openalex.org/W2139325411","https://openalex.org/W2141978748","https://openalex.org/W2293046879","https://openalex.org/W2409939811","https://openalex.org/W2434217241","https://openalex.org/W2530873820","https://openalex.org/W2785700716","https://openalex.org/W2903717232","https://openalex.org/W2922634639","https://openalex.org/W3010779417","https://openalex.org/W3034732732","https://openalex.org/W3216568532","https://openalex.org/W4281667938","https://openalex.org/W4285503953","https://openalex.org/W4322764349","https://openalex.org/W4362677176","https://openalex.org/W4390604686","https://openalex.org/W4394892700","https://openalex.org/W4394999076","https://openalex.org/W4399850754","https://openalex.org/W4400064739"],"related_works":["https://openalex.org/W2950520577","https://openalex.org/W1554644772","https://openalex.org/W2003935582","https://openalex.org/W2494130044","https://openalex.org/W3170887803","https://openalex.org/W74409296","https://openalex.org/W3209384898","https://openalex.org/W4400951174","https://openalex.org/W1595834484","https://openalex.org/W1991844655"],"abstract_inverted_index":{"Multi-pattern":[0],"matching":[1,37,120],"is":[2,38],"widely":[3],"used":[4],"in":[5,187],"modern":[6],"software":[7],"for":[8,86,118],"applications":[9],"requiring":[10],"high":[11],"throughput":[12,215],"such":[13],"as":[14,198,200],"protein":[15],"search,":[16],"network":[17],"traffic":[18],"inspection,":[19],"virus":[20],"or":[21,50],"spam":[22],"detection.":[23],"Graphics":[24],"Processor":[25],"Units":[26],"(GPUs)":[27],"excel":[28],"at":[29],"executing":[30],"massively":[31],"parallel":[32,84],"workloads.":[33],"Regular":[34],"expression":[35],"(regex)":[36],"typically":[39],"performed":[40],"by":[41],"simulating":[42],"the":[43,101,108,114,155,161,166,172,175,185,205,217,229],"execution":[44],"of":[45,58,103,125,136,165,204,236],"deterministic":[46],"finite":[47,52],"automata":[48,53,60,130],"(DFAs)":[49],"nondeterministic":[51],"(NFAs).":[54],"The":[55,163],"natural":[56],"implementations":[57],"these":[59],"simulation":[61,131],"algorithms":[62,112,157],"on":[63,97,160,171,184],"GPUs":[64],"are":[65,169,182],"highly":[66],"inefficient":[67],"because":[68],"they":[69],"give":[70],"rise":[71],"to":[72,93,121,132,144,158],"irregular":[73],"memory":[74,104,180],"access":[75],"patterns.":[76],"This":[77],"paper":[78],"presents":[79],"HybridSA,":[80],"a":[81,122,133,142,201,234],"heterogeneous":[82],"CPU-GPU":[83],"engine":[85,220,232],"multi-pattern":[87],"matching.":[88],"HybridSA":[89,191,207],"uses":[90],"bit":[91,149],"parallelism":[92],"efficiently":[94],"simulate":[95],"NFAs":[96],"GPUs,":[98],"thus":[99],"reducing":[100],"number":[102,135],"accesses":[105,181],"and":[106,128,153,195,211,221,224],"increasing":[107],"throughput.":[109],"Our":[110],"bit-parallel":[111],"extend":[113],"classical":[115],"shift-and":[116],"algorithm":[117],"string":[119],"large":[123],"class":[124],"regular":[126,146,167],"expressions":[127,147,168],"reduce":[129],"small":[134],"bitwise":[137],"operations.":[138],"We":[139,189],"have":[140],"developed":[141],"compiler":[143],"translate":[145],"into":[148],"masks,":[150],"perform":[151],"optimizations,":[152],"choose":[154],"best":[156],"run":[159],"GPU.":[162],"majority":[164],"accelerated":[170],"GPU,":[173],"while":[174],"patterns":[176],"that":[177],"exhibit":[178],"random":[179],"executed":[183],"CPU":[186,194,219],"parallel.":[188],"evaluate":[190],"against":[192],"state-of-the-art":[193,218,230],"GPU":[196,231],"engines,":[197],"well":[199],"hybrid":[202],"combination":[203],"two.":[206],"achieves":[208],"between":[209,222],"4":[210,223],"60":[212],"times":[213,226],"higher":[214],"than":[216,228],"233":[225],"better":[227],"across":[233],"collection":[235],"real-world":[237],"benchmarks.":[238]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":4}],"updated_date":"2026-02-07T06:11:34.122080","created_date":"2025-10-10T00:00:00"}
