{"id":"https://openalex.org/W2584135","doi":null,"title":"Compilation and Automatic Parallelisation of Functional Code for Data-Parallel Architectures","display_name":"Compilation and Automatic Parallelisation of Functional Code for Data-Parallel Architectures","publication_year":2011,"publication_date":"2011-07-01","ids":{"openalex":"https://openalex.org/W2584135","mag":"2584135"},"language":"en","primary_location":{"id":"pmh:oai:opus.bath.ac.uk:29008","doi":null,"is_oa":true,"landing_page_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","pdf_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","source":{"id":"https://openalex.org/S4306401631","display_name":"The University of Bath Online Publications Store (The University of Bath)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I51601045","host_organization_name":"University of Bath","host_organization_lineage":["https://openalex.org/I51601045"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Reports/Papers"},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5074422181","display_name":"Tommy Lillehagen","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Tommy Lillehagen","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5074422181"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0003075,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9945999979972839,"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.9945999979972839,"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.003800000064074993,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.0005000000237487257,"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/automatic-parallelization","display_name":"automatic parallelization","score":0.8980000019073486},{"id":"https://openalex.org/keywords/functional-programming-languages","display_name":"functional programming languages","score":0.8550000190734863},{"id":"https://openalex.org/keywords/gpu-computing","display_name":"GPU computing","score":0.6110000014305115},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.9729999899864197},{"id":"https://openalex.org/keywords/compiler-design","display_name":"compiler design","score":0.7179999947547913},{"id":"https://openalex.org/keywords/tail-recursion","display_name":"tail recursion","score":0.5239999890327454},{"id":"https://openalex.org/keywords/iteration","display_name":"iteration","score":0.32100000977516174},{"id":"https://openalex.org/keywords/parallel-loops","display_name":"parallel loops","score":0.6899999976158142},{"id":"https://openalex.org/keywords/loop-carried-dependences","display_name":"loop-carried dependences","score":0.7070000171661377}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8771047592163086},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7166533470153809},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7082250118255615},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6053785085678101},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.6014938950538635},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.5560271739959717},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5369659662246704},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5355396866798401},{"id":"https://openalex.org/C190475519","wikidata":"https://www.wikidata.org/wiki/Q544384","display_name":"Massively parallel","level":2,"score":0.49252042174339294},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.471482515335083},{"id":"https://openalex.org/C3543717","wikidata":"https://www.wikidata.org/wiki/Q6007302","display_name":"Implicit parallelism","level":4,"score":0.45875975489616394},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.3240542709827423},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1256297528743744},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.09837114810943604}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:opus.bath.ac.uk:29008","doi":null,"is_oa":true,"landing_page_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","pdf_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","source":{"id":"https://openalex.org/S4306401631","display_name":"The University of Bath Online Publications Store (The University of Bath)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I51601045","host_organization_name":"University of Bath","host_organization_lineage":["https://openalex.org/I51601045"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Reports/Papers"},{"id":"mag:2584135","doi":null,"is_oa":false,"landing_page_url":"https://purehost.bath.ac.uk/ws/files/238142/Lillehagen.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:opus.bath.ac.uk:29008","doi":null,"is_oa":true,"landing_page_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","pdf_url":"http://opus.bath.ac.uk/29008/5/Lillehagen.pdf","source":{"id":"https://openalex.org/S4306401631","display_name":"The University of Bath Online Publications Store (The University of Bath)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I51601045","host_organization_name":"University of Bath","host_organization_lineage":["https://openalex.org/I51601045"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Reports/Papers"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2584135.pdf","grobid_xml":"https://content.openalex.org/works/W2584135.grobid-xml"},"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W2760095528","https://openalex.org/W2077145274","https://openalex.org/W7095447854","https://openalex.org/W2519833055","https://openalex.org/W1578161803","https://openalex.org/W7098455633","https://openalex.org/W2767023694","https://openalex.org/W2102360129","https://openalex.org/W7099360191","https://openalex.org/W7099056463"],"abstract_inverted_index":{"Over":[0],"recent":[1],"years,":[2],"there":[3,227],"has":[4,18,140,152,175],"been":[5,141,154,176],"a":[6,47,55,89,245],"stagnation":[7],"of":[8,39,46,54,69,80,95,104,107,115,172,206,219,257,280,283],"the":[9,34,44,52,65,81,93,102,113,136,170,179,204,217,258,266,278,289],"increase":[10],"in":[11,101,118,129,143,147,169,200,241],"CPU":[12],"clock":[13],"speed,":[14],"and":[15,51,124,126,163,209,238],"consequently,":[16],"it":[17,193],"become":[19],"increasingly":[20],"popular":[21],"to":[22,27,30,32,60,85,186,191,234,251,271],"offload":[23],"general-purpose":[24],"computing":[25],"problems":[26],"graphics":[28,77],"processors":[29],"try":[31],"exploit":[33],"massively":[35],"data-parallel":[36,70,165,285],"processing":[37,67],"capabilities":[38,68],"these":[40],"devices.This":[41],"project":[42,174],"presents":[43],"design":[45],"functional":[48,119,144],"programming":[49],"language":[50],"implementation":[53],"prototype":[56],"compiler":[57,232],"which":[58],"aims":[59],"produce":[61],"code":[62,108,190,259],"that":[63,91,182,226,253,269],"exploits":[64],"powerful":[66],"hardware":[71],"components,":[72],"such":[73,121,132],"as":[74,122,133],"CUDA":[75],"enabled":[76],"processors.":[78],"One":[79],"long-term":[82],"goals":[83],"is":[84,109,203,249,263],"provide":[86],"programmers":[87],"with":[88,112],"tool":[90],"simplifies":[92],"development":[94],"algorithms":[96],"for":[97,160,194],"parallel":[98,223],"architectures.Previous":[99],"work":[100],"area":[103],"automatic":[105,195],"parallellisation":[106],"predominantly":[110],"concerned":[111],"exploitation":[114],"task":[116],"parallelism":[117,128],"languages,":[120,131,145],"Lisp":[123],"Haskell,":[125,150],"data":[127],"imperative":[130],"Fortran.":[134],"In":[135],"cases":[137],"where":[138],"data-parallelism":[139],"exploited":[142],"e.g.,":[146],"Data":[148],"Parallel":[149],"this":[151,173,201],"mostly":[153],"done":[155],"by":[156],"introducing":[157],"library":[158],"support":[159],"CUDA,":[161],"OpenCL":[162],"other":[164],"frameworks.The":[166],"main":[167],"focus":[168],"course":[171],"directed":[177],"towards":[178],"optimisation":[180],"techniques":[181],"can":[183,274],"be":[184,275],"applied":[185],"seemingly":[187],"sequential,":[188],"functional-style":[189],"prepare":[192],"parallelisation.":[196],"The":[197],"pre-eminent":[198],"transformation":[199],"context":[202],"conversion":[205],"augmenting":[207],"recursion":[208,211],"tail":[210],"into":[212,222],"iteration":[213],"which,":[214],"consequently,can":[215],"enable":[216],"translation":[218],"iterative":[220],"constructs":[221,240],"loops,":[224],"given":[225],"are":[228,260],"no":[229],"loop-carried":[230],"dependences.Thee":[231],"strives":[233],"identify":[235],"natural":[236],"mapping":[237],"reduction":[239],"sequential":[242,281],"code.":[243],"Furthermore,":[244],"dynamic":[246],"performance":[247],"model":[248],"employed":[250],"ensure":[252],"only":[254],"beneficial":[255],"sections":[256],"parallelised.":[261],"It":[262],"concluded":[264],"from":[265,277],"initial":[267],"results,":[268],"tenfold":[270],"hundredfold":[272],"speed-ups":[273],"achieved":[276],"parallelisation":[279],"representations":[282],"naturally":[284],"constructs,":[286],"depending":[287],"on":[288],"pointof":[290],"comparison.":[291]},"counts_by_year":[],"updated_date":"2026-08-29T07:29:34.045763","created_date":"2016-06-24T00:00:00"}
