{"id":"https://openalex.org/W3170436692","doi":"https://doi.org/10.1007/s10766-021-00716-z","title":"Restoration of Legacy Parallelism: Transforming Pthreads into Farm and Pipeline Patterns","display_name":"Restoration of Legacy Parallelism: Transforming Pthreads into Farm and Pipeline Patterns","publication_year":2021,"publication_date":"2021-06-10","ids":{"openalex":"https://openalex.org/W3170436692","doi":"https://doi.org/10.1007/s10766-021-00716-z","mag":"3170436692"},"language":"en","primary_location":{"id":"doi:10.1007/s10766-021-00716-z","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10766-021-00716-z","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10766-021-00716-z.pdf","source":{"id":"https://openalex.org/S148521650","display_name":"International Journal of Parallel Programming","issn_l":"0885-7458","issn":["0885-7458","1573-7640"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"International Journal of Parallel Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://link.springer.com/content/pdf/10.1007/s10766-021-00716-z.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5102807884","display_name":"Vladimir Janjic","orcid":"https://orcid.org/0000-0001-5134-9032"},"institutions":[{"id":"https://openalex.org/I177639307","display_name":"University of Dundee","ror":"https://ror.org/03h2bxq36","country_code":"GB","type":"education","lineage":["https://openalex.org/I177639307"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Vladimir Janjic","raw_affiliation_strings":["School of Science and Engineering, University of Dundee, Dundee, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"School of Science and Engineering, University of Dundee, Dundee, UK","institution_ids":["https://openalex.org/I177639307"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5063492775","display_name":"Christopher Brown","orcid":"https://orcid.org/0000-0001-6030-2885"},"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":"Christopher Brown","raw_affiliation_strings":["School of Computer Science, University of St Andrews, St Andrews, UK"],"raw_orcid":"https://orcid.org/0000-0001-6030-2885","affiliations":[{"raw_affiliation_string":"School of Computer Science, University of St Andrews, St Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5056270312","display_name":"Adam D. Barwell","orcid":"https://orcid.org/0000-0003-1236-7160"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Adam D. Barwell","raw_affiliation_strings":["Department of Computing, Imperial College London, London, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing, Imperial College London, London, UK","institution_ids":["https://openalex.org/I47508984"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5063492775"],"corresponding_institution_ids":["https://openalex.org/I16835326"],"apc_list":{"value":2290,"currency":"EUR","value_usd":2890},"apc_paid":{"value":2290,"currency":"EUR","value_usd":2890},"fwci":0.0,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.07607362,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":95},"biblio":{"volume":"49","issue":"6","first_page":"886","last_page":"910"},"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.9998999834060669,"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.9998999834060669,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9994999766349792,"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9991000294685364,"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/posix-threads","display_name":"POSIX Threads","score":0.9555524587631226},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.877814531326294},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.7465913891792297},{"id":"https://openalex.org/keywords/pipeline","display_name":"Pipeline (software)","score":0.6066595911979675},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.5932841300964355},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5417689681053162},{"id":"https://openalex.org/keywords/cyclomatic-complexity","display_name":"Cyclomatic complexity","score":0.47919023036956787},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4760398864746094},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.47579893469810486},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.36640554666519165},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.223524808883667}],"concepts":[{"id":"https://openalex.org/C41138395","wikidata":"https://www.wikidata.org/wiki/Q928112","display_name":"POSIX Threads","level":3,"score":0.9555524587631226},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.877814531326294},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.7465913891792297},{"id":"https://openalex.org/C43521106","wikidata":"https://www.wikidata.org/wiki/Q2165493","display_name":"Pipeline (software)","level":2,"score":0.6066595911979675},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.5932841300964355},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5417689681053162},{"id":"https://openalex.org/C187303228","wikidata":"https://www.wikidata.org/wiki/Q867330","display_name":"Cyclomatic complexity","level":3,"score":0.47919023036956787},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4760398864746094},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.47579893469810486},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.36640554666519165},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.223524808883667},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1007/s10766-021-00716-z","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10766-021-00716-z","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10766-021-00716-z.pdf","source":{"id":"https://openalex.org/S148521650","display_name":"International Journal of Parallel Programming","issn_l":"0885-7458","issn":["0885-7458","1573-7640"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"International Journal of Parallel Programming","raw_type":"journal-article"},{"id":"pmh:oai:discovery.dundee.ac.uk:openaire_cris_publications/7c43e621-df82-45c9-9816-683a08823fc0","is_oa":true,"landing_page_url":"https://discovery.dundee.ac.uk/en/publications/7c43e621-df82-45c9-9816-683a08823fc0","pdf_url":null,"source":{"id":"https://openalex.org/S4306400523","display_name":"Discovery Research Portal (University of Dundee)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177639307","host_organization_name":"University of Dundee","host_organization_lineage":["https://openalex.org/I177639307"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Janjic, V, Brown, C & Barwell, A D 2021, 'Restoration of Legacy Parallelism : Transforming Pthreads into Farm and Pipeline Patterns', International Journal of Parallel Programming, vol. 49, pp. 886-910. https://doi.org/10.1007/s10766-021-00716-z","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:spiral.imperial.ac.uk:10044/1/95864","is_oa":true,"landing_page_url":"http://hdl.handle.net/10044/1/95864","pdf_url":null,"source":{"id":"https://openalex.org/S4306401396","display_name":"Spiral (Imperial College London)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I47508984","host_organization_name":"Imperial College London","host_organization_lineage":["https://openalex.org/I47508984"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"910","raw_type":"Journal Article"}],"best_oa_location":{"id":"doi:10.1007/s10766-021-00716-z","is_oa":true,"landing_page_url":"https://doi.org/10.1007/s10766-021-00716-z","pdf_url":"https://link.springer.com/content/pdf/10.1007/s10766-021-00716-z.pdf","source":{"id":"https://openalex.org/S148521650","display_name":"International Journal of Parallel Programming","issn_l":"0885-7458","issn":["0885-7458","1573-7640"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"International Journal of Parallel Programming","raw_type":"journal-article"},"sustainable_development_goals":[{"display_name":"Sustainable cities and communities","score":0.4699999988079071,"id":"https://metadata.un.org/sdg/11"}],"awards":[{"id":"https://openalex.org/G4722879663","display_name":null,"funder_award_id":"EP/V006290/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences 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/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3170436692.pdf","grobid_xml":"https://content.openalex.org/works/W3170436692.grobid-xml"},"referenced_works_count":33,"referenced_works":["https://openalex.org/W1536722699","https://openalex.org/W1554398046","https://openalex.org/W1598796492","https://openalex.org/W1606457760","https://openalex.org/W1607699646","https://openalex.org/W1964962870","https://openalex.org/W1975535524","https://openalex.org/W1988888548","https://openalex.org/W2004865374","https://openalex.org/W2023299380","https://openalex.org/W2027627526","https://openalex.org/W2039417226","https://openalex.org/W2093281430","https://openalex.org/W2118084379","https://openalex.org/W2129106233","https://openalex.org/W2135274583","https://openalex.org/W2153887189","https://openalex.org/W2154705416","https://openalex.org/W2162544437","https://openalex.org/W2171383742","https://openalex.org/W2311942676","https://openalex.org/W2336894004","https://openalex.org/W2572546943","https://openalex.org/W2592318916","https://openalex.org/W2593611378","https://openalex.org/W2604608020","https://openalex.org/W2618516564","https://openalex.org/W2766111638","https://openalex.org/W2772612468","https://openalex.org/W2995287845","https://openalex.org/W3041213087","https://openalex.org/W4236021984","https://openalex.org/W4237609491"],"related_works":["https://openalex.org/W137396771","https://openalex.org/W2974157558","https://openalex.org/W4387237598","https://openalex.org/W2033862586","https://openalex.org/W3020605687","https://openalex.org/W2487895676","https://openalex.org/W2114641424","https://openalex.org/W2808284296","https://openalex.org/W2738455","https://openalex.org/W3170436692"],"abstract_inverted_index":{"Abstract":[0],"Parallel":[1],"patterns":[2,59],"are":[3,19],"a":[4,29,38,109,134,160],"high-level":[5],"programming":[6],"paradigm":[7],"that":[8,18],"enables":[9],"non-experts":[10],"in":[11,60,147,154],"parallelism":[12,146],"to":[13,88,114],"develop":[14],"structured":[15,122],"parallel":[16,32,58],"programs":[17,117],"maintainable,":[20],"adaptive,":[21],"and":[22,48,71,85,91,124,144,157],"portable":[23],"whilst":[24],"achieving":[25],"good":[26],"performance":[27],"on":[28,133,159],"variety":[30],"of":[31,41,79,101,136,141,162],"systems.":[33],"However,":[34,76],"there":[35],"still":[36],"exists":[37],"large":[39],"base":[40],"legacy-parallel":[42,116],"code":[43,65,82,93],"developed":[44],"using":[45,119],"ad-hoc":[46],"methods":[47],"incorporating":[49],"low-level":[50],"parallel/concurrency":[51],"libraries":[52],"such":[53],"as":[54],"pthreads":[55,120],"without":[56],"any":[57],"the":[61,77,81,98,102,139,148],"fundamental":[62],"design.":[63],"This":[64],"would":[66],"benefit":[67],"from":[68],"being":[69,94],"restructured":[70],"rewritten":[72],"into":[73,121],"pattern-based":[74],"code.":[75],"process":[78],"rewriting":[80],"is":[83],"laborious":[84],"error-prone,":[86],"due":[87],"typical":[89],"concurrency":[90],"pthreading":[92],"closely":[95],"intertwined":[96],"throughout":[97],"business":[99],"logic":[100],"program.":[103],"In":[104],"this":[105],"paper,":[106],"we":[107,151],"present":[108],"new":[110],"software":[111],"restoration":[112,131],"methodology,":[113],"transform":[115],"implemented":[118],"farm":[123,143],"pipeline":[125,145],"patterned":[126,142],"equivalents.":[127],"We":[128],"demonstrate":[129],"our":[130],"technique":[132],"number":[135,161],"benchmarks,":[137],"allowing":[138],"introduction":[140],"resulting":[149],"code;":[150],"record":[152],"improvements":[153],"cyclomatic":[155],"complexity":[156],"speedups":[158],"representative":[163],"benchmarks.":[164]},"counts_by_year":[{"year":2025,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
