{"id":"https://openalex.org/W2609349455","doi":"https://doi.org/10.1145/3060597","title":"Exploiting vector instructions with generalized stream fusion","display_name":"Exploiting vector instructions with generalized stream fusion","publication_year":2017,"publication_date":"2017-04-24","ids":{"openalex":"https://openalex.org/W2609349455","doi":"https://doi.org/10.1145/3060597","mag":"2609349455"},"language":"en","primary_location":{"id":"doi:10.1145/3060597","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3060597","pdf_url":null,"source":{"id":"https://openalex.org/S103482838","display_name":"Communications of the ACM","issn_l":"0001-0782","issn":["0001-0782","1557-7317"],"is_oa":false,"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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Communications of the ACM","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/A5091390132","display_name":"Geoffrey Mainland","orcid":"https://orcid.org/0000-0002-0328-8594"},"institutions":[{"id":"https://openalex.org/I72816309","display_name":"Drexel University","ror":"https://ror.org/04bdffz58","country_code":"US","type":"education","lineage":["https://openalex.org/I72816309"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Geoffrey Mainland","raw_affiliation_strings":["Drexel University, Philadelphia, PA"],"affiliations":[{"raw_affiliation_string":"Drexel University, Philadelphia, PA","institution_ids":["https://openalex.org/I72816309"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5007894751","display_name":"Roman Leshchinskiy","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Roman Leshchinskiy","raw_affiliation_strings":[""],"affiliations":[{"raw_affiliation_string":"","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5027817074","display_name":"Simon Peyton Jones","orcid":"https://orcid.org/0000-0002-6085-1435"},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Simon Peyton Jones","raw_affiliation_strings":["Microsoft Research Ltd Cambridge, England"],"affiliations":[{"raw_affiliation_string":"Microsoft Research Ltd Cambridge, England","institution_ids":["https://openalex.org/I4210164937"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5091390132"],"corresponding_institution_ids":["https://openalex.org/I72816309"],"apc_list":null,"apc_paid":null,"fwci":0.6759,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.67079414,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"60","issue":"5","first_page":"83","last_page":"91"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9994000196456909,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9994000196456909,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9991000294685364,"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/T10142","display_name":"Formal Methods in Verification","score":0.9969000220298767,"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/haskell","display_name":"Haskell","score":0.9157707095146179},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8877004384994507},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6816145777702332},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6548884510993958},{"id":"https://openalex.org/keywords/stream-processing","display_name":"Stream processing","score":0.5937795042991638},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5159352421760559},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.49590548872947693},{"id":"https://openalex.org/keywords/unicode","display_name":"Unicode","score":0.43533527851104736},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.4248756766319275},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.33672136068344116},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.14334243535995483}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9157707095146179},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8877004384994507},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6816145777702332},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6548884510993958},{"id":"https://openalex.org/C107027933","wikidata":"https://www.wikidata.org/wiki/Q2006448","display_name":"Stream processing","level":2,"score":0.5937795042991638},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5159352421760559},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.49590548872947693},{"id":"https://openalex.org/C500551929","wikidata":"https://www.wikidata.org/wiki/Q8819","display_name":"Unicode","level":2,"score":0.43533527851104736},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.4248756766319275},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.33672136068344116},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.14334243535995483}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3060597","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3060597","pdf_url":null,"source":{"id":"https://openalex.org/S103482838","display_name":"Communications of the ACM","issn_l":"0001-0782","issn":["0001-0782","1557-7317"],"is_oa":false,"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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Communications of the ACM","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.4300000071525574,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":15,"referenced_works":["https://openalex.org/W1527713232","https://openalex.org/W1564866124","https://openalex.org/W1966981171","https://openalex.org/W2073061372","https://openalex.org/W2074674709","https://openalex.org/W2081124914","https://openalex.org/W2084379367","https://openalex.org/W2097824307","https://openalex.org/W2117818027","https://openalex.org/W2144037748","https://openalex.org/W2150848984","https://openalex.org/W2159227002","https://openalex.org/W2163496769","https://openalex.org/W2168938117","https://openalex.org/W2208923056"],"related_works":["https://openalex.org/W1530680153","https://openalex.org/W1608604542","https://openalex.org/W2112263414","https://openalex.org/W1602185604","https://openalex.org/W3004782279","https://openalex.org/W2028779182","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W4296274916"],"abstract_inverted_index":{"Ideally,":[0],"a":[1,5,33,57,172],"program":[2],"written":[3,184],"as":[4,13,15,81],"composition":[6],"of":[7,23,74,175],"concise,":[8],"self-contained":[9],"components":[10,27],"should":[11,39],"perform":[12,128],"well":[14,129],"the":[16,21,72,131,140,156],"equivalent":[17],"hand-written":[18],"version":[19],"where":[20],"functionality":[22],"what":[24],"was":[25],"many":[26],"has":[28,102],"been":[29,103],"manually":[30],"combined":[31],"into":[32,98],"monolithic":[34],"implementation.":[35],"That":[36],"is,":[37],"programmers":[38],"not":[40,127,151],"have":[41],"to":[42,51,64,91,105,153],"sacrifice":[43],"code":[44,183,192],"clarity":[45],"or":[46],"good":[47],"software":[48],"engineering":[49],"practices":[50],"obtain":[52],"performance---we":[53],"want":[54],"compositionality":[55],"without":[56],"performance":[58],"penalty.":[59],"This":[60],"work":[61,85],"shows":[62,89],"how":[63,90],"attain":[65],"this":[66],"goal":[67],"for":[68,111],"high-level":[69,95,181],"Haskell":[70,109,182],"in":[71,108,155],"domain":[73],"sequence-processing":[75,96],"functions,":[76],"which":[77,167],"includes":[78],"applications":[79],"such":[80],"array":[82],"processing.":[83],"Prior":[84],"on":[86,146],"stream":[87,132,157,165,176],"fusion":[88,133,158],"automatically":[92],"transform":[93],"some":[94,121],"functions":[97],"efficient":[99],"implementations.":[100],"It":[101],"used":[104],"great":[106],"effect":[107],"libraries":[110,189],"manipulating":[112],"byte":[113],"arrays,":[114],"Unicode":[115],"text,":[116],"and":[117,142,188,199],"unboxed":[118],"vectors.":[119],"However":[120],"operations,":[122],"like":[123,136],"vector":[124],"append,":[125],"do":[126,150],"within":[130],"framework.":[134],"Others,":[135],"SIMD":[137],"computation":[138],"using":[139,185],"SSE":[141],"AVX":[143],"instructions":[144],"available":[145],"modern":[147],"x86":[148],"chips,":[149],"seem":[152],"fit":[154],"framework":[159],"at":[160],"all.":[161],"We":[162],"describe":[163],"generalized":[164],"fusion,":[166],"solves":[168],"these":[169],"issues":[170],"through":[171],"careful":[173],"choice":[174],"representation.":[177],"Benchmarks":[178],"show":[179],"that":[180,193],"our":[186],"compiler":[187],"can":[190],"produce":[191],"is":[194],"faster":[195],"than":[196],"both":[197],"compiler-":[198],"hand-vectorized":[200],"C.":[201]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":1},{"year":2014,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
