{"id":"https://openalex.org/W2126693002","doi":"https://doi.org/10.1145/1250734.1250752","title":"Automatic inversion generates divide-and-conquer parallel programs","display_name":"Automatic inversion generates divide-and-conquer parallel programs","publication_year":2007,"publication_date":"2007-06-10","ids":{"openalex":"https://openalex.org/W2126693002","doi":"https://doi.org/10.1145/1250734.1250752","mag":"2126693002"},"language":"en","primary_location":{"id":"doi:10.1145/1250734.1250752","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1250734.1250752","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-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/A5036198872","display_name":"Kazutaka Morita","orcid":null},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":true,"raw_author_name":"Kazutaka Morita","raw_affiliation_strings":["University of Tokyo, Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"University of Tokyo, Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5037284935","display_name":"Akimasa Morihata","orcid":"https://orcid.org/0000-0003-2741-5954"},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Akimasa Morihata","raw_affiliation_strings":["University of Tokyo, Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"University of Tokyo, Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5081111196","display_name":"Kiminori Matsuzaki","orcid":"https://orcid.org/0009-0003-4663-3292"},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Kiminori Matsuzaki","raw_affiliation_strings":["University of Tokyo, Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"University of Tokyo, Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5102717988","display_name":"Zhenjiang Hu","orcid":"https://orcid.org/0000-0002-9034-205X"},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Zhenjiang Hu","raw_affiliation_strings":["University of Tokyo, Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"University of Tokyo, Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5081886276","display_name":"Masato Takeichi","orcid":"https://orcid.org/0000-0002-5842-2789"},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Masato Takeichi","raw_affiliation_strings":["University of Tokyo, Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"University of Tokyo, Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5036198872"],"corresponding_institution_ids":["https://openalex.org/I74801974"],"apc_list":null,"apc_paid":null,"fwci":3.8191,"has_fulltext":false,"cited_by_count":64,"citation_normalized_percentile":{"value":0.93273371,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"146","last_page":"155"},"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.9993000030517578,"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.9993000030517578,"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/T12288","display_name":"Optimization and Search Problems","score":0.9965999722480774,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9961000084877014,"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/divide-and-conquer-algorithms","display_name":"Divide and conquer algorithms","score":0.9036490321159363},{"id":"https://openalex.org/keywords/homomorphism","display_name":"Homomorphism","score":0.8206894993782043},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8063969612121582},{"id":"https://openalex.org/keywords/prefix","display_name":"Prefix","score":0.6864322423934937},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.47685253620147705},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4686550199985504},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4383949339389801},{"id":"https://openalex.org/keywords/parallel-algorithm","display_name":"Parallel algorithm","score":0.41203680634498596},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.2853192687034607},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.1976851522922516},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.18209686875343323},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.1496727168560028}],"concepts":[{"id":"https://openalex.org/C71559656","wikidata":"https://www.wikidata.org/wiki/Q671298","display_name":"Divide and conquer algorithms","level":2,"score":0.9036490321159363},{"id":"https://openalex.org/C4042151","wikidata":"https://www.wikidata.org/wiki/Q215111","display_name":"Homomorphism","level":2,"score":0.8206894993782043},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8063969612121582},{"id":"https://openalex.org/C141603448","wikidata":"https://www.wikidata.org/wiki/Q134830","display_name":"Prefix","level":2,"score":0.6864322423934937},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.47685253620147705},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4686550199985504},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4383949339389801},{"id":"https://openalex.org/C120373497","wikidata":"https://www.wikidata.org/wiki/Q1087987","display_name":"Parallel algorithm","level":2,"score":0.41203680634498596},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.2853192687034607},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.1976851522922516},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.18209686875343323},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1496727168560028},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1250734.1250752","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1250734.1250752","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.156.5882","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.156.5882","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.ucla.edu/~palsberg/course/cs239/papers/morita.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":33,"referenced_works":["https://openalex.org/W102566742","https://openalex.org/W197886282","https://openalex.org/W1484598194","https://openalex.org/W1494665534","https://openalex.org/W1507693023","https://openalex.org/W1528303475","https://openalex.org/W1540138108","https://openalex.org/W1545621744","https://openalex.org/W1558180172","https://openalex.org/W1559921330","https://openalex.org/W1561415812","https://openalex.org/W1595783387","https://openalex.org/W1853328183","https://openalex.org/W1963634389","https://openalex.org/W1975107635","https://openalex.org/W1998875295","https://openalex.org/W2017627169","https://openalex.org/W2020080707","https://openalex.org/W2021235324","https://openalex.org/W2058209638","https://openalex.org/W2060164640","https://openalex.org/W2064556673","https://openalex.org/W2087977509","https://openalex.org/W2091138079","https://openalex.org/W2097699872","https://openalex.org/W2120068738","https://openalex.org/W2122465391","https://openalex.org/W2143879997","https://openalex.org/W2913026635","https://openalex.org/W4245893729","https://openalex.org/W4246295476","https://openalex.org/W6633479193","https://openalex.org/W6759142343"],"related_works":["https://openalex.org/W2340701376","https://openalex.org/W2070865675","https://openalex.org/W2071635571","https://openalex.org/W4212854884","https://openalex.org/W1970073092","https://openalex.org/W2070426974","https://openalex.org/W2054653010","https://openalex.org/W1657646819","https://openalex.org/W338671845","https://openalex.org/W2041057519"],"abstract_inverted_index":{"Divide-and-conquer":[0],"algorithms":[1],"are":[2,29],"suitable":[3],"for":[4,54],"modern":[5],"parallel":[6,165],"machines,":[7],"tending":[8],"to":[9,88,94],"have":[10],"large":[11],"amounts":[12],"of":[13,32,76,91,96,118,154,162],"inherent":[14],"parallelism":[15],"and":[16,21,62,109,144,159],"working":[17],"well":[18,40],"with":[19,41,48,125],"caches":[20],"deep":[22],"memory":[23],"hierarchies.":[24],"Among":[25],"others,":[26],"list":[27,49,71,92],"homomorphisms":[28,50,72,93],"a":[30,52,64,74,103,115],"class":[31,117],"recursive":[33],"functions":[34],"on":[35,80],"lists,":[36],"which":[37],"match":[38],"very":[39],"the":[42,81,130,135,139,145,163],"divide-and-conquer":[43],"paradigm.":[44],"However,":[45],"direct":[46],"programming":[47],"is":[51,87],"challenge":[53],"many":[55],"programmers.":[56],"In":[57],"this":[58],"paper,":[59],"we":[60],"propose":[61],"implement":[63],"novel":[65],"systemthat":[66],"can":[67,110],"automatically":[68,112],"derive":[69],"cost-optimal":[70],"from":[73,114],"pair":[75],"sequential":[77,119],"programs,":[78],"based":[79],"third":[82],"homomorphism":[83],"theorem.":[84],"Our":[85],"idea":[86],"reduce":[89],"extraction":[90],"derivation":[95],"weak":[97,104],"right":[98,105],"inverses.":[99],"We":[100,121],"show":[101,151],"that":[102],"inverse":[106],"always":[107],"exists":[108],"be":[111],"generated":[113,164],"wide":[116],"programs.":[120,166],"demonstrate":[122],"our":[123,155],"system":[124],"several":[126],"nontrivial":[127],"examples,":[128],"including":[129],"maximum":[131,140],"prefix":[132,136],"sum":[133,137,142],"problem,":[134,143],"computation,":[138],"segment":[141],"line-of-sight":[146],"problem.":[147],"The":[148],"experimental":[149],"results":[150],"practical":[152],"efficiency":[153],"automatic":[156],"parallelization":[157],"algorithm":[158],"good":[160],"speedups":[161]},"counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":8},{"year":2016,"cited_by_count":4},{"year":2015,"cited_by_count":3},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":5},{"year":2012,"cited_by_count":7}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
