{"id":"https://openalex.org/W3023977240","doi":"https://doi.org/10.7488/era/309","title":"From constraint programming to heterogeneous parallelism","display_name":"From constraint programming to heterogeneous parallelism","publication_year":2020,"publication_date":"2020-04-29","ids":{"openalex":"https://openalex.org/W3023977240","doi":"https://doi.org/10.7488/era/309","mag":"3023977240"},"language":"en","primary_location":{"id":"pmh:oai:era.ed.ac.uk:1842/37008","is_oa":true,"landing_page_url":"https://hdl.handle.net/1842/37008","pdf_url":"https://hdl.handle.net/1842/37008","source":{"id":"https://openalex.org/S7407055182","display_name":"ERA","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"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":"Thesis or Dissertation"},"type":"dissertation","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://hdl.handle.net/1842/37008","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5004932726","display_name":"Philip Ginsbach","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Ginsbach, Philip Andreas","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5004932726"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":2,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11596","display_name":"Constraint Satisfaction and Optimization","score":0.9979000091552734,"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"}},"topics":[{"id":"https://openalex.org/T11596","display_name":"Constraint Satisfaction and Optimization","score":0.9979000091552734,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9843999743461609,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9605000019073486,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/constraint-programming","display_name":"Constraint programming","score":0.745398759841919},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.669456422328949},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.5958122611045837},{"id":"https://openalex.org/keywords/concurrent-constraint-logic-programming","display_name":"Concurrent constraint logic programming","score":0.5346500277519226},{"id":"https://openalex.org/keywords/constraint","display_name":"Constraint (computer-aided design)","score":0.5072535872459412},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5001285076141357},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.46197760105133057},{"id":"https://openalex.org/keywords/constraint-logic-programming","display_name":"Constraint logic programming","score":0.44893819093704224},{"id":"https://openalex.org/keywords/constraint-satisfaction","display_name":"Constraint satisfaction","score":0.4159252941608429},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.2672017812728882},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.2347453236579895},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.22840097546577454},{"id":"https://openalex.org/keywords/functional-logic-programming","display_name":"Functional logic programming","score":0.20504611730575562},{"id":"https://openalex.org/keywords/mathematical-optimization","display_name":"Mathematical optimization","score":0.1786576509475708},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.10316380858421326},{"id":"https://openalex.org/keywords/stochastic-programming","display_name":"Stochastic programming","score":0.08163461089134216}],"concepts":[{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.745398759841919},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.669456422328949},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.5958122611045837},{"id":"https://openalex.org/C204306468","wikidata":"https://www.wikidata.org/wiki/Q5159106","display_name":"Concurrent constraint logic programming","level":5,"score":0.5346500277519226},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.5072535872459412},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5001285076141357},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.46197760105133057},{"id":"https://openalex.org/C176783269","wikidata":"https://www.wikidata.org/wiki/Q5164378","display_name":"Constraint logic programming","level":4,"score":0.44893819093704224},{"id":"https://openalex.org/C44616089","wikidata":"https://www.wikidata.org/wiki/Q30158686","display_name":"Constraint satisfaction","level":3,"score":0.4159252941608429},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.2672017812728882},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.2347453236579895},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.22840097546577454},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.20504611730575562},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.1786576509475708},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.10316380858421326},{"id":"https://openalex.org/C137631369","wikidata":"https://www.wikidata.org/wiki/Q7617831","display_name":"Stochastic programming","level":2,"score":0.08163461089134216},{"id":"https://openalex.org/C49937458","wikidata":"https://www.wikidata.org/wiki/Q2599292","display_name":"Probabilistic logic","level":2,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"pmh:oai:era.ed.ac.uk:1842/37008","is_oa":true,"landing_page_url":"https://hdl.handle.net/1842/37008","pdf_url":"https://hdl.handle.net/1842/37008","source":{"id":"https://openalex.org/S7407055182","display_name":"ERA","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"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":"Thesis or Dissertation"},{"id":"doi:10.7488/era/309","is_oa":true,"landing_page_url":"https://doi.org/10.7488/era/309","pdf_url":null,"source":{"id":"https://openalex.org/S7407050748","display_name":"University of Edinburgh","issn_l":null,"issn":[],"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":null},{"id":"mag:3023977240","is_oa":false,"landing_page_url":"https://era.ed.ac.uk/handle/1842/37008","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:era.ed.ac.uk:1842/37008","is_oa":true,"landing_page_url":"https://hdl.handle.net/1842/37008","pdf_url":"https://hdl.handle.net/1842/37008","source":{"id":"https://openalex.org/S7407055182","display_name":"ERA","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"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":"Thesis or Dissertation"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3023977240.pdf","grobid_xml":"https://content.openalex.org/works/W3023977240.grobid-xml"},"referenced_works_count":8,"referenced_works":["https://openalex.org/W1528855243","https://openalex.org/W2009215380","https://openalex.org/W2032039029","https://openalex.org/W2154697693","https://openalex.org/W2170634604","https://openalex.org/W2772612468","https://openalex.org/W2962724414","https://openalex.org/W2987290330"],"related_works":["https://openalex.org/W782017735","https://openalex.org/W2753375080","https://openalex.org/W2787855223","https://openalex.org/W2953557002","https://openalex.org/W2598267646","https://openalex.org/W2969896934","https://openalex.org/W2256712429","https://openalex.org/W2602534758","https://openalex.org/W2995872452","https://openalex.org/W2070897293","https://openalex.org/W2997604864","https://openalex.org/W2261584776","https://openalex.org/W657474705","https://openalex.org/W2416513222","https://openalex.org/W2265879880","https://openalex.org/W2094752275","https://openalex.org/W2269565628","https://openalex.org/W3057591228","https://openalex.org/W2305987110","https://openalex.org/W2208813008"],"abstract_inverted_index":{"The":[0,197,229,307],"scaling":[1],"limitations":[2],"of":[3,12,28,152,161,199,226,278,313,344,353,361],"multi-core":[4],"processor":[5,14,32,35],"development":[6],"have":[7],"led":[8],"to":[9,208,246,254,311,325],"a":[10,87,126,276,284,385],"diversification":[11],"the":[13,26,80,97,146,223,258,265,291,300,314,341,350,358],"cores":[15,37],"used":[16],"within":[17,155],"individual":[18],"computers.":[19],"Heterogeneous":[20,84],"computing":[21,74],"has":[22],"become":[23],"widespread,":[24],"involving":[25],"cooperation":[27],"several":[29],"structurally":[30],"different":[31,279],"cores.":[33,102],"Central":[34],"(CPU)":[36],"are":[38,50,64,76,86,164,252,273],"most":[39],"frequently":[40],"complemented":[41],"with":[42,190,290],"graphics":[43],"processors":[44],"(GPUs),":[45],"which":[46,93],"despite":[47],"their":[48,191,203,389],"name":[49],"suitable":[51,386],"for":[52,89,129,214,222,388],"many":[53],"highly":[54],"parallel":[55],"computations":[56],"besides":[57],"computer":[58],"graphics.":[59],"Furthermore,":[60],"deep":[61],"learning":[62],"accelerators":[63],"rapidly":[65],"gaining":[66],"relevance.":[67],"Many":[68],"applications":[69],"could":[70],"profit":[71],"from":[72,134,321,331],"heterogeneous":[73,104,132,227,286,351],"but":[75],"held":[77],"back":[78],"by":[79],"surrounding":[81],"software":[82],"ecosystems.":[83],"systems":[85],"challenge":[88],"compilers":[90,207],"in":[91,120,178,202,283,318,366],"particular,":[92],"usually":[94],"target":[95,255],"only":[96],"increasingly":[98],"marginalised":[99],"homogeneous":[100],"CPU":[101],"Therefore,":[103],"acceleration":[105,287,352],"is":[106,233,364,373,384],"primarily":[107],"accessible":[108],"via":[109],"libraries":[110,186],"and":[111,118,149,167,185,194,211,240,264,305,371],"domain-specific":[112],"languages":[113,251,272],"(DSLs),":[114],"requiring":[115],"application":[116],"rewrites":[117],"resulting":[119,317],"vendor":[121],"lock-in.":[122],"This":[123,295],"thesis":[124,338],"presents":[125],"compiler":[127,156,280],"method":[128,144,387],"automatically":[130],"targeting":[131],"hardware":[133],"existing":[135],"sequential":[136,332,354],"C/C++":[137,293,355],"source":[138],"code.":[139,159],"A":[140],"new":[141],"constraint":[142,230,249,376],"programming":[143,192,231,250,369,377],"enables":[145,206,349],"declarative":[147,359,368],"specification":[148,360],"automatic":[150,342,390],"detection":[151,198],"computational":[153,162,188,200,345,362],"idioms":[154,163,171,189,201,346,363],"intermediate":[157,382],"representation":[158],"Examples":[160],"stencils,":[165],"reductions,":[166],"linear":[168],"algebra.":[169],"Computational":[170],"denote":[172],"algorithmic":[173],"structures":[174],"that":[175,340,375],"commonly":[176],"occur":[177],"performance-critical":[179],"loops.":[180],"Consequently,":[181],"well-designed":[182],"accelerator":[183],"DSLs":[184],"support":[187],"models":[193],"function":[195],"interfaces.":[196],"middle":[204],"end":[205],"incorporate":[209],"DSL":[210],"library":[212],"backends":[213,218],"code":[215,383],"generation.":[216],"These":[217,271],"leverage":[219],"domain":[220],"knowledge":[221],"efficient":[224],"utilisation":[225],"hardware.":[228],"methodology":[232],"first":[234],"derived":[235,365],"on":[236,275,299,323,327,378],"an":[237,244],"abstract":[238],"model":[239],"then":[241],"implemented":[242],"as":[243],"extension":[245],"LLVM.":[247],"Two":[248],"designed":[253],"this":[256,337],"implementation:":[257],"Compiler":[259],"Analysis":[260],"Description":[261],"Language":[262,269],"(CAnDL),":[263],"extended":[266],"Idiom":[267],"Detection":[268],"(IDL).":[270],"evaluated":[274,298],"range":[277],"problems,":[281],"culminating":[282],"complete":[285],"pipeline":[288,296],"integrated":[289],"Clang":[292],"compiler.":[294],"was":[297,309],"established":[301],"benchmark":[302,315],"collections":[303],"NPB":[304],"Parboil.":[306],"approach":[308],"applicable":[310],"10":[312],"programs,":[316],"significant":[319],"speedups":[320],"1.26\u00d7":[322],"\u201chisto\u201d":[324],"275\u00d7":[326],"\u201csgemm\u201d":[328],"when":[329],"starting":[330],"baseline":[333],"versions.":[334],"In":[335],"summary,":[336],"shows":[339],"recognition":[343],"during":[347],"compilation":[348],"programs.":[356],"Moreover,":[357],"novel":[367],"languages,":[370],"it":[372],"demonstrated":[374],"Single":[379],"Static":[380],"Assignment":[381],"detection.":[391]},"counts_by_year":[{"year":2022,"cited_by_count":2}],"updated_date":"2026-07-01T06:00:48.157686","created_date":"2025-10-10T00:00:00"}
