{"id":"https://openalex.org/W2753707300","doi":"https://doi.org/10.1145/3122948.3122951","title":"In search of a map: using program slicing to discover potential parallelism in recursive functions","display_name":"In search of a map: using program slicing to discover potential parallelism in recursive functions","publication_year":2017,"publication_date":"2017-08-30","ids":{"openalex":"https://openalex.org/W2753707300","doi":"https://doi.org/10.1145/3122948.3122951","mag":"2753707300"},"language":"en","primary_location":{"id":"doi:10.1145/3122948.3122951","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3122948.3122951","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 6th ACM SIGPLAN International Workshop on Functional High-Performance Computing","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://zenodo.org/record/1194692","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5056270312","display_name":"Adam D. Barwell","orcid":"https://orcid.org/0000-0003-1236-7160"},"institutions":[{"id":"https://openalex.org/I16835326","display_name":"University of St Andrews","ror":"https://ror.org/02wn5qz54","country_code":"GB","type":"education","lineage":["https://openalex.org/I16835326"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Adam D. Barwell","raw_affiliation_strings":["University of St. Andrews, UK"],"affiliations":[{"raw_affiliation_string":"University of St. Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5055787720","display_name":"Kevin Hammond","orcid":"https://orcid.org/0000-0002-4326-4562"},"institutions":[{"id":"https://openalex.org/I16835326","display_name":"University of St Andrews","ror":"https://ror.org/02wn5qz54","country_code":"GB","type":"education","lineage":["https://openalex.org/I16835326"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Kevin Hammond","raw_affiliation_strings":["University of St. Andrews, UK"],"affiliations":[{"raw_affiliation_string":"University of St. Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5056270312"],"corresponding_institution_ids":["https://openalex.org/I16835326"],"apc_list":null,"apc_paid":null,"fwci":0.355,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.65249501,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"30","last_page":"41"},"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.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"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9936000108718872,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9879000186920166,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8861640691757202},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8282189965248108},{"id":"https://openalex.org/keywords/program-slicing","display_name":"Program slicing","score":0.760623574256897},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.7531231641769409},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.7389125227928162},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.7083737850189209},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.7021265029907227},{"id":"https://openalex.org/keywords/slicing","display_name":"Slicing","score":0.7006676197052002},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.45790645480155945},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.4542340636253357},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.416336327791214},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.40228158235549927},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3850982189178467}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8861640691757202},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8282189965248108},{"id":"https://openalex.org/C91071405","wikidata":"https://www.wikidata.org/wiki/Q1413145","display_name":"Program slicing","level":3,"score":0.760623574256897},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.7531231641769409},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.7389125227928162},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7083737850189209},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.7021265029907227},{"id":"https://openalex.org/C2776190703","wikidata":"https://www.wikidata.org/wiki/Q488148","display_name":"Slicing","level":2,"score":0.7006676197052002},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.45790645480155945},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.4542340636253357},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.416336327791214},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.40228158235549927},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3850982189178467},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3122948.3122951","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3122948.3122951","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 6th ACM SIGPLAN International Workshop on Functional High-Performance Computing","raw_type":"proceedings-article"},{"id":"pmh:oai:research-repository.st-andrews.ac.uk:10023/16813","is_oa":false,"landing_page_url":"https://hdl.handle.net/10023/16813","pdf_url":null,"source":{"id":"https://openalex.org/S4306400230","display_name":"St Andrews Research Repository (St Andrews Research Repository)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I16835326","host_organization_name":"University of St Andrews","host_organization_lineage":["https://openalex.org/I16835326"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Conference item"},{"id":"pmh:oai:zenodo.org:1194692","is_oa":true,"landing_page_url":"https://zenodo.org/record/1194692","pdf_url":null,"source":{"id":"https://openalex.org/S4306400562","display_name":"Zenodo (CERN European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/conferencePaper"}],"best_oa_location":{"id":"pmh:oai:zenodo.org:1194692","is_oa":true,"landing_page_url":"https://zenodo.org/record/1194692","pdf_url":null,"source":{"id":"https://openalex.org/S4306400562","display_name":"Zenodo (CERN European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/conferencePaper"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G2180883101","display_name":null,"funder_award_id":"ICT-644235","funder_id":"https://openalex.org/F4320332999","funder_display_name":"Horizon 2020 Framework Programme"},{"id":"https://openalex.org/G237496436","display_name":null,"funder_award_id":"IC1202","funder_id":"https://openalex.org/F4320320366","funder_display_name":"European Cooperation in Science and Technology"},{"id":"https://openalex.org/G3837658400","display_name":null,"funder_award_id":"ICT-288570","funder_id":"https://openalex.org/F4320338352","funder_display_name":"FP7 Ideas: European Research Council"},{"id":"https://openalex.org/G5169153448","display_name":null,"funder_award_id":"EP/P020631/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6280419463","display_name":"Discovery: Pattern Discovery and Program Shaping for Manycore Systems","funder_award_id":"EP/P020631/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320320366","display_name":"European Cooperation in Science and Technology","ror":"https://ror.org/01bstzn19"},{"id":"https://openalex.org/F4320332999","display_name":"Horizon 2020 Framework Programme","ror":"https://ror.org/00k4n6c32"},{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"},{"id":"https://openalex.org/F4320338352","display_name":"FP7 Ideas: European Research Council","ror":"https://ror.org/0472cxd90"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":39,"referenced_works":["https://openalex.org/W1514157278","https://openalex.org/W1528303475","https://openalex.org/W1545621744","https://openalex.org/W1553136405","https://openalex.org/W1608714802","https://openalex.org/W1975107635","https://openalex.org/W1975535524","https://openalex.org/W1990195720","https://openalex.org/W2023299380","https://openalex.org/W2027627526","https://openalex.org/W2054984098","https://openalex.org/W2087064593","https://openalex.org/W2090504951","https://openalex.org/W2104958979","https://openalex.org/W2109360396","https://openalex.org/W2116293853","https://openalex.org/W2116357421","https://openalex.org/W2116827712","https://openalex.org/W2118659391","https://openalex.org/W2127814526","https://openalex.org/W2137399459","https://openalex.org/W2139053140","https://openalex.org/W2139085735","https://openalex.org/W2151146297","https://openalex.org/W2152104548","https://openalex.org/W2153979749","https://openalex.org/W2155762556","https://openalex.org/W2158868919","https://openalex.org/W2178100245","https://openalex.org/W2270526533","https://openalex.org/W2307745613","https://openalex.org/W2507299602","https://openalex.org/W2516191916","https://openalex.org/W2561675875","https://openalex.org/W2604608020","https://openalex.org/W2913256667","https://openalex.org/W3203568064","https://openalex.org/W4246295476","https://openalex.org/W4250875842"],"related_works":["https://openalex.org/W2134982133","https://openalex.org/W1964336761","https://openalex.org/W2991905743","https://openalex.org/W2169437772","https://openalex.org/W4239953224","https://openalex.org/W2112395437","https://openalex.org/W4302024603","https://openalex.org/W2347708239","https://openalex.org/W2170816480","https://openalex.org/W1595405651"],"abstract_inverted_index":{"Recursion":[0],"schemes,":[1],"such":[2],"as":[3,10],"the":[4,48,78,84,93,121,137],"well-known":[5],"map,":[6],"can":[7,43,131],"be":[8,44,132],"used":[9],"loci":[11],"of":[12,47,98],"potential":[13,100],"parallelism,":[14],"where":[15],"schemes":[16],"are":[17],"replaced":[18],"with":[19],"an":[20],"equivalent":[21],"parallel":[22,129],"implementation.":[23],"This":[24],"paper":[25],"formalises":[26],"a":[27,58,64],"novel":[28],"technique,":[29],"using":[30],"program":[31,60],"slicing,":[32],"that":[33,42,113,127],"automatically":[34],"and":[35,50,67,81,111],"statically":[36],"identifies":[37],"computations":[38],"in":[39,54,96],"recursive":[40],"functions":[41,82],"lifted":[45],"out":[46],"function":[49],"then":[51],"potentially":[52],"performed":[53],"parallel.":[55],"We":[56],"define":[57],"new":[59],"slicing":[61],"algorithm,":[62],"build":[63],"prototype":[65,107,115],"implementation,":[66],"demonstrate":[68,126],"its":[69],"use":[70],"on":[71,140],"12":[72],"Haskell":[73,86],"examples,":[74],"including":[75],"benchmarks":[76],"from":[77,83],"NoFib":[79,122],"suite":[80],"standard":[85],"Prelude.":[87],"In":[88],"all":[89],"cases,":[90],"we":[91,103,125],"obtain":[92],"expected":[94],"results":[95],"terms":[97],"finding":[99],"parallelism.":[101],"Moreover,":[102],"have":[104],"tested":[105],"our":[106,114],"against":[108],"synthetic":[109],"benchmarks,":[110],"found":[112],"has":[116],"quadratic":[117],"time":[118],"complexity.":[119],"For":[120],"benchmark":[123],"examples":[124],"relative":[128],"speedups":[130],"obtained":[133],"(up":[134],"to":[135],"32.93\u00d7":[136],"sequential":[138],"performance":[139],"56":[141],"hyperthreaded":[142],"cores).":[143]},"counts_by_year":[{"year":2019,"cited_by_count":1}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2025-10-10T00:00:00"}
