{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:34:23Z","timestamp":1750221263436,"version":"3.41.0"},"reference-count":59,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2017,10,24]],"date-time":"2017-10-24T00:00:00Z","timestamp":1508803200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2017,12,31]]},"abstract":"<jats:p>\n            High-level parallel programming is an active research topic aimed at promoting parallel programming methodologies that provide the programmer with high-level abstractions to develop complex parallel software with reduced time to solution.\n            <jats:italic>Pattern-based parallel programming<\/jats:italic>\n            is based on a set of composable and customizable parallel patterns used as basic building blocks in parallel applications. In recent years, a considerable effort has been made in empowering this programming model with features able to overcome shortcomings of early approaches concerning flexibility and performance. In this article, we demonstrate that the approach is flexible and efficient enough by applying it on 12 out of 13 PARSEC applications. Our analysis, conducted on three different multicore architectures, demonstrates that pattern-based parallel programming has reached a good level of maturity, providing comparable results in terms of performance with respect to both other parallel programming methodologies based on pragma-based annotations (i.e., Open\n            <jats:sc>mp<\/jats:sc>\n            and O\n            <jats:sc>mp<\/jats:sc>\n            S\n            <jats:sc>s<\/jats:sc>\n            ) and native implementations (i.e., P\n            <jats:sc>threads<\/jats:sc>\n            ). Regarding the programming effort, we also demonstrate a considerable reduction in lines of code and code churn compared to P\n            <jats:sc>threads<\/jats:sc>\n            and comparable results with respect to other existing implementations.\n          <\/jats:p>","DOI":"10.1145\/3132710","type":"journal-article","created":{"date-parts":[[2017,10,26]],"date-time":"2017-10-26T14:19:33Z","timestamp":1509027573000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["Bringing Parallel Patterns Out of the Corner"],"prefix":"10.1145","volume":"14","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7244-639X","authenticated-orcid":false,"given":"Daniele","family":"De Sensi","sequence":"first","affiliation":[{"name":"University of Pisa"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tiziano","family":"De Matteis","sequence":"additional","affiliation":[{"name":"University of Pisa"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Massimo","family":"Torquati","sequence":"additional","affiliation":[{"name":"University of Pisa"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gabriele","family":"Mencagli","sequence":"additional","affiliation":[{"name":"University of Pisa"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marco","family":"Danelutto","sequence":"additional","affiliation":[{"name":"University of Pisa"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,10,24]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2011.81"},{"key":"e_1_2_1_2_1","volume-title":"Proceedings of the 11th IASTED International Conference on Parallel and Distributed Computing and Systems. 966--962","author":"Aldinucci Marco","year":"1999","unstructured":"Marco Aldinucci and Marco Danelutto . 1999 . Stream parallel skeleton optimization . In Proceedings of the 11th IASTED International Conference on Parallel and Distributed Computing and Systems. 966--962 . Marco Aldinucci and Marco Danelutto. 1999. Stream parallel skeleton optimization. In Proceedings of the 11th IASTED International Conference on Parallel and Distributed Computing and Systems. 966--962."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-32820-6_65"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.3063"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330070305"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454128"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1086\/260062"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/209937.209958"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1186\/s12859-016-1170-y"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2011.15"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.2316\/P.2014.811-029"},{"volume-title":"A Parallel Programming With Microsoft Visual C++: Design Patterns for Decomposition and Coordination on Multicore Architectures","author":"Campbell Colin","key":"e_1_2_1_12_1","unstructured":"Colin Campbell and Ade Miller . 2011. A Parallel Programming With Microsoft Visual C++: Design Patterns for Decomposition and Coordination on Multicore Architectures . Microsoft Press , Redmond, WA . Colin Campbell and Ade Miller. 2011. A Parallel Programming With Microsoft Visual C++: Design Patterns for Decomposition and Coordination on Multicore Architectures. Microsoft Press, Redmond, WA."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2008.29"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00607-015-0444-y"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806638"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-76837-1_3"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2829952"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2003.12.002"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the 15th International Parallel Computing Conference (ParCo\u201913)","author":"Danelutto Marco","year":"2013","unstructured":"Marco Danelutto , Luca Deri , Daniele De Sensi , and Massimo Torquati . 2013 . Deep packet inspection on commodity hardware using FastFlow . In Proceedings of the 15th International Parallel Computing Conference (ParCo\u201913) . 92--99. Marco Danelutto, Luca Deri, Daniele De Sensi, and Massimo Torquati. 2013. Deep packet inspection on commodity hardware using FastFlow. In Proceedings of the 15th International Parallel Computing Conference (ParCo\u201913). 92--99."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2016.115"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3019612.3019745"},{"key":"e_1_2_1_22_1","series-title":"Lecture Notes in Computer Science","volume-title":"FastFlow. In Central European Functional Programming School","author":"Danelutto Marco","unstructured":"Marco Danelutto and Massimo Torquati . 2015. Structured parallel programming with \u201ccore \u201d FastFlow. In Central European Functional Programming School . Lecture Notes in Computer Science , Vol. 8606 . Springer , 29--75. Marco Danelutto and Massimo Torquati. 2015. Structured parallel programming with \u201ccore\u201d FastFlow. In Central European Functional Programming School. Lecture Notes in Computer Science, Vol. 8606. Springer, 29--75."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3004054"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.softx.2017.06.005"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1327452.1327492"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4175"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC.2010.78"},{"key":"e_1_2_1_28_1","unstructured":"Pradeep Dubey. 2005. Recognition mining and synthesis moves computers to the era of tera. Technology@Intel Magazine 9 2 1--10.  Pradeep Dubey. 2005. Recognition mining and synthesis moves computers to the era of tera. Technology@Intel Magazine 9 2 1--10."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-013-0263-8"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863482.1863487"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1504\/IJHPCN.2012.046370"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-017-0490-5"},{"key":"e_1_2_1_33_1","volume-title":"Design Patterns: Elements of Reusable Object-oriented Software","author":"Gamma Erich","year":"1995","unstructured":"Erich Gamma , Richard Helm , Ralph Johnson , and John Vlissides . 1995 . Design Patterns: Elements of Reusable Object-oriented Software . Longman , Boston, MA . Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-oriented Software. Longman, Boston, MA."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2016.05.003"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.v40:12"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796805005538"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0129626417400059"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-017-0497-y"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/335191.335372"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.2307\/2951677"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2016.122"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2809808"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2013.05.189"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2010.26"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1218063.1217966"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICIP.2005.1530120"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2851141.2851148"},{"volume-title":"Patterns for Parallel Programming","author":"Mattson Timothy","key":"e_1_2_1_48_1","unstructured":"Timothy Mattson , Beverly Sanders , and Berna Massingill . 2004. Patterns for Parallel Programming . Addison-Wesley Professional . Timothy Mattson, Beverly Sanders, and Berna Massingill. 2004. Patterns for Parallel Programming. Addison-Wesley Professional."},{"volume-title":"Structured Parallel Programming. Morgan Kaufmann","author":"McCool Michael","key":"e_1_2_1_49_1","unstructured":"Michael McCool , James Reinders , and Arch Robison . 2012. Structured Parallel Programming. Morgan Kaufmann , San Francisco, CA . Michael McCool, James Reinders, and Arch Robison. 2012. Structured Parallel Programming. Morgan Kaufmann, San Francisco, CA."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2017.2679197"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.5555\/850947.853326"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062514"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.28"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2666356.2594292"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2011.269"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_3"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(02)00188-6"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.6178"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/216585.216588"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3132710","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3132710","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:10:56Z","timestamp":1750212656000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3132710"}},"subtitle":["The P\n            <sup>3<\/sup>\n            ARSEC Benchmark Suite"],"short-title":[],"issued":{"date-parts":[[2017,10,24]]},"references-count":59,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2017,12,31]]}},"alternative-id":["10.1145\/3132710"],"URL":"https:\/\/doi.org\/10.1145\/3132710","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2017,10,24]]},"assertion":[{"value":"2017-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}