{"id":"https://openalex.org/W2168488307","doi":"https://doi.org/10.1145/781498.781532","title":"Using generative design patterns to generate parallel code for a distributed memory environment","display_name":"Using generative design patterns to generate parallel code for a distributed memory environment","publication_year":2003,"publication_date":"2003-06-11","ids":{"openalex":"https://openalex.org/W2168488307","doi":"https://doi.org/10.1145/781498.781532","mag":"2168488307"},"language":"en","primary_location":{"id":"doi:10.1145/781498.781532","doi":"https://doi.org/10.1145/781498.781532","is_oa":false,"landing_page_url":"https://doi.org/10.1145/781498.781532","pdf_url":null,"source":{"id":"https://openalex.org/S4306417578","display_name":"ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"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/A5073875168","display_name":"Kai Tan","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Kai Tan","raw_affiliation_strings":["University of Alberta, Edmonton, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Edmonton, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5000711683","display_name":"Duane Szafron","orcid":"https://orcid.org/0000-0001-7864-6811","observed_orcids":["https://orcid.org/0000-0001-7864-6811"]},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Duane Szafron","raw_affiliation_strings":["University of Alberta, Edmonton, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Edmonton, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018637996","display_name":"Jonathan Schaeffer","orcid":"https://orcid.org/0000-0002-2447-7394","observed_orcids":["https://orcid.org/0000-0002-2447-7394","https://orcid.org/0009-0007-3735-5947"]},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Jonathan Schaeffer","raw_affiliation_strings":["University of Alberta, Edmonton, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Edmonton, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5038565477","display_name":"John Anvik","orcid":"https://orcid.org/0000-0002-6912-1754","observed_orcids":["https://orcid.org/0000-0002-6912-1754"]},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"John Anvik","raw_affiliation_strings":["University of Alberta, Edmonton, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Alberta, Edmonton, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5113501802","display_name":"Steve MacDonald","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Steve MacDonald","raw_affiliation_strings":["University of Waterloo, Waterloo, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, Canada","institution_ids":["https://openalex.org/I151746483"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":3.2182,"has_fulltext":false,"cited_by_count":35,"citation_normalized_percentile":{"value":0.916045,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":95,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"203","last_page":"215"},"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.926800012588501,"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.926800012588501,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.026900000870227814,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.011800000444054604,"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/parallel-programming","display_name":"parallel programming","score":0.5690000057220459},{"id":"https://openalex.org/keywords/distributed-memory","display_name":"distributed memory","score":0.7770000100135803},{"id":"https://openalex.org/keywords/code-generation","display_name":"code generation","score":0.7080000042915344},{"id":"https://openalex.org/keywords/object-oriented-parallel-programming","display_name":"object-oriented parallel programming","score":0.6549999713897705},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5709999799728394},{"id":"https://openalex.org/keywords/shared-memory","display_name":"shared memory","score":0.5299999713897705}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8815420269966125},{"id":"https://openalex.org/C146054899","wikidata":"https://www.wikidata.org/wiki/Q181156","display_name":"Software design pattern","level":3,"score":0.6060804724693298},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.581047534942627},{"id":"https://openalex.org/C14501506","wikidata":"https://www.wikidata.org/wiki/Q5253831","display_name":"Design pattern","level":2,"score":0.5576300621032715},{"id":"https://openalex.org/C91481028","wikidata":"https://www.wikidata.org/wiki/Q1054686","display_name":"Distributed memory","level":3,"score":0.5403691530227661},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5349430441856384},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5263009071350098},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.4954429864883423},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.47930780053138733},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.4261763095855713},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.42323732376098633},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.4214818477630615},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.393890380859375},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.3539015054702759},{"id":"https://openalex.org/C133875982","wikidata":"https://www.wikidata.org/wiki/Q764810","display_name":"Shared memory","level":2,"score":0.2948320508003235},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.19598469138145447},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.13079920411109924},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.09652528166770935},{"id":"https://openalex.org/C127162648","wikidata":"https://www.wikidata.org/wiki/Q16858953","display_name":"Channel (broadcasting)","level":2,"score":0.0},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/781498.781532","doi":"https://doi.org/10.1145/781498.781532","is_oa":false,"landing_page_url":"https://doi.org/10.1145/781498.781532","pdf_url":null,"source":{"id":"https://openalex.org/S4306417578","display_name":"ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.59.4075","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.4075","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.ualberta.ca/~duane/pdf/2003ppopp.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.6.5298","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.5298","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.ualberta.ca/~janvik/papers/PoPP03.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":40,"referenced_works":["https://openalex.org/W2780771","https://openalex.org/W41699526","https://openalex.org/W94032536","https://openalex.org/W109260298","https://openalex.org/W160336082","https://openalex.org/W1489689515","https://openalex.org/W1526167226","https://openalex.org/W1534884539","https://openalex.org/W1575238410","https://openalex.org/W1589918049","https://openalex.org/W1592740644","https://openalex.org/W1603994548","https://openalex.org/W1616782664","https://openalex.org/W1649645444","https://openalex.org/W1668924526","https://openalex.org/W1963588736","https://openalex.org/W1964638409","https://openalex.org/W1965498649","https://openalex.org/W1982540003","https://openalex.org/W1988888548","https://openalex.org/W2011269219","https://openalex.org/W2018100839","https://openalex.org/W2030907583","https://openalex.org/W2057475977","https://openalex.org/W2067748597","https://openalex.org/W2088322083","https://openalex.org/W2092574257","https://openalex.org/W2098606386","https://openalex.org/W2114201536","https://openalex.org/W2116665965","https://openalex.org/W2120485090","https://openalex.org/W2121153954","https://openalex.org/W2121984483","https://openalex.org/W2140471248","https://openalex.org/W2147634649","https://openalex.org/W2155001461","https://openalex.org/W2167291996","https://openalex.org/W2983082893","https://openalex.org/W3021447659","https://openalex.org/W4250430103"],"related_works":["https://openalex.org/W2121153954","https://openalex.org/W1575238410","https://openalex.org/W2169881443","https://openalex.org/W2116665965","https://openalex.org/W2144461845","https://openalex.org/W1587029679","https://openalex.org/W1963588736","https://openalex.org/W2162287247","https://openalex.org/W2739848983","https://openalex.org/W2131846130"],"abstract_inverted_index":{"A":[0,43],"design":[1,18,41,48,123,131],"pattern":[2],"is":[3,100,166],"a":[4,14,68,77],"mechanism":[5],"for":[6,53,61,80,91,160],"encapsulating":[7],"the":[8,46,59,81,87,92,109,162],"knowledge":[9],"of":[10,71,86],"experienced":[11],"designers":[12],"into":[13],"re-usable":[15],"artifact.":[16],"Parallel":[17,34],"patterns":[19,49,60,124,132],"reflect":[20],"commonly":[21],"occurring":[22],"parallel":[23,47,142,179],"communication":[24],"and":[25,37,56,111,137,152,168],"synchronization":[26],"structures.":[27],"Our":[28],"tools,":[29],"CO2P3S":[30,74,175],"(Correct":[31],"Object-Oriented":[32],"Pattern-based":[33],"Programming":[35],"System)":[36],"MetaCO2P3S,":[38],"use":[39,121,138],"generative":[40,122],"patterns.":[42],"programmer":[44,99],"selects":[45],"that":[50,62,83,107,145],"are":[51,159],"appropriate":[52],"an":[54,127],"application,":[55],"then":[57,75],"adapts":[58],"specific":[63],"application":[64,82,93,110,128,143],"by":[65],"selecting":[66],"from":[67],"small":[69],"set":[70],"code-configuration":[72],"options.":[73],"generates":[76],"custom":[78],"framework":[79],"includes":[84],"all":[85],"structural":[88],"code":[89,106,144],"necessary":[90],"to":[94,103,112,125,140,176],"run":[95],"in":[96,114,149],"parallel.":[97],"The":[98],"only":[101],"required":[102],"write":[104],"simple":[105],"launches":[108],"fill":[113],"some":[115],"application-specific":[116],"sequential":[117,134],"hook":[118],"routines.":[119],"We":[120],"take":[126],"specification":[129],"(parallel":[130],"+":[133],"user":[135],"code)":[136],"it":[139],"generate":[141,177],"achieves":[146],"good":[147],"performance":[148],"shared":[150],"memory":[151,154],"distributed":[153],"environments.":[155],"Although":[156],"our":[157],"implementations":[158],"Java,":[161],"approach":[163],"we":[164],"describe":[165],"tool":[167],"language":[169],"independent.":[170],"This":[171],"paper":[172],"describes":[173],"generalizing":[174],"distributed-memory":[178],"solutions.":[180]},"counts_by_year":[{"year":2012,"cited_by_count":3}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
