{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,7,12]],"date-time":"2024-07-12T21:56:45Z","timestamp":1720821405594},"reference-count":41,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2017,8,1]],"date-time":"2017-08-01T00:00:00Z","timestamp":1501545600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Softw Tools Technol Transfer"],"published-print":{"date-parts":[[2019,4]]},"DOI":"10.1007\/s10009-017-0465-2","type":"journal-article","created":{"date-parts":[[2017,8,1]],"date-time":"2017-08-01T05:07:04Z","timestamp":1501564024000},"page":"183-202","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Formal specification and implementation of an automated pattern-based parallel-code generation framework"],"prefix":"10.1007","volume":"21","author":[{"given":"Gervasio","family":"P\u00e9rez","sequence":"first","affiliation":[]},{"given":"Sergio","family":"Yovine","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2017,8,1]]},"reference":[{"issue":"6","key":"465_CR1","doi-asserted-by":"publisher","first-page":"1012","DOI":"10.1007\/s10766-013-0273-6","volume":"42","author":"M Aldinucci","year":"2014","unstructured":"Aldinucci, M., Campa, S., Danelutto, M., Kilpatrick, P., Torquati, M.: Design patterns percolating to parallel programming framework implementation. Int. J. Parallel Program. 42(6), 1012\u20131031 (2014)","journal-title":"Int. J. Parallel Program."},{"key":"465_CR2","unstructured":"Aldinucci, M., Danelutto, M., Kilpatrick, P., Torquati, M.: Fastflow: high-level and efficient streaming on multi-core. Programming multi-core and many-core computing systems, parallel and distributed computing (2014)"},{"key":"465_CR3","unstructured":"Anand, C.K., Kahl, W.: Synthesizing and verifying multicore parallelism in categories of nested code graphs. In: Process Algebra for Parallel and Distributed Processing, vol.\u00a02, pp. 3\u201345. Chapman & Hall (2009)"},{"issue":"10","key":"465_CR4","doi-asserted-by":"publisher","first-page":"56","DOI":"10.1145\/1562764.1562783","volume":"52","author":"K Asanovic","year":"2009","unstructured":"Asanovic, K., Bodik, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.: A view of the parallel computing landscape. CACM 52(10), 56\u201367 (2009)","journal-title":"CACM"},{"key":"465_CR5","doi-asserted-by":"crossref","unstructured":"Assayad, I., Bertin, V., Defaut, F.-X., Gerner, P., Qu\u00e9vreux, O., Yovine, S.: Jahuel: a formal framework for software synthesis. In Formal Methods and Software Engineering, pp. 204\u2013218. Springer (2005)","DOI":"10.1007\/11576280_15"},{"key":"465_CR6","unstructured":"Belikov, E., Deligiannis, P., Totoo, P., Aljabri, M., Loidl, H.-W.: A survey of high-level parallel programming models (2013)"},{"issue":"1","key":"465_CR7","doi-asserted-by":"publisher","first-page":"55","DOI":"10.1006\/jpdc.1996.0107","volume":"37","author":"RD Blumofe","year":"1996","unstructured":"Blumofe, R.D., Joerg, C.F., Kuszmaul, B.C., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: an efficient multithreaded runtime system. J. Parallel Distrib. Comput. 37(1), 55\u201369 (1996)","journal-title":"J. Parallel Distrib. Comput."},{"issue":"7","key":"465_CR8","doi-asserted-by":"publisher","first-page":"663","DOI":"10.1002\/cpe.1904","volume":"24","author":"R Buchty","year":"2012","unstructured":"Buchty, R., Karl, V., Weiss, W., Weiss, J.-P.: A survey on hardware-aware and heterogeneous computing on multicore processors and accelerators. Concurr. Comput. Pract. Exp. 24(7), 663\u2013675 (2012)","journal-title":"Concurr. Comput. Pract. Exp."},{"issue":"3","key":"465_CR9","first-page":"203","volume":"18","author":"Z Budimli\u0107","year":"2010","unstructured":"Budimli\u0107, Z., et al.: Concurrent collections. Sci. Program. 18(3), 203\u2013217 (2010)","journal-title":"Sci. Program."},{"key":"465_CR10","volume-title":"Chapel","author":"BL Chamberlain","year":"2015","unstructured":"Chamberlain, B.L.: Chapel. MIT Press, Cambridge (2015)"},{"key":"465_CR11","unstructured":"Ciechanowicz, P., Poldner, M., Kuchen, H.: The M\u00fcnster skeleton library Muesli\u2014a comprehensive overview. Technical report, M\u00fcnster (2009)"},{"key":"465_CR12","volume-title":"Algorithmic skeletons: structured management of parallel computation","author":"MI Cole","year":"1989","unstructured":"Cole, M.I.: Algorithmic skeletons: structured management of parallel computation. Pitman, London (1989)"},{"issue":"1","key":"465_CR13","doi-asserted-by":"publisher","first-page":"46","DOI":"10.1109\/99.660313","volume":"5","author":"L Dagum","year":"1998","unstructured":"Dagum, L., Menon, R.: OpenMP: an industry standard API for shared-memory programming. IEEE Comput. Sci. Eng. 5(1), 46\u201355 (1998)","journal-title":"IEEE Comput. Sci. Eng."},{"issue":"1","key":"465_CR14","doi-asserted-by":"publisher","first-page":"107","DOI":"10.1145\/1327452.1327492","volume":"51","author":"J Dean","year":"2008","unstructured":"Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. CACM 51(1), 107\u2013113 (2008)","journal-title":"CACM"},{"key":"465_CR15","doi-asserted-by":"crossref","unstructured":"Ekanayake, J., Li, H., Zhang, B., Gunarathne, T., Bae, S.-H., Qiu, J., Fox, G.: Twister: a runtime for iterative mapreduce. In: 19th ACM International Symposium on High Performance Distributed Computing, pp. 810\u2013818, New York, NY, USA. ACM (2010)","DOI":"10.1145\/1851476.1851593"},{"key":"465_CR16","doi-asserted-by":"crossref","unstructured":"Enmyren, J., Kessler, C.W.: SkePU: a multi-backend skeleton programming library for multi-GPU systems. In Proceedings of 4th International Workshop on High-level parallel programming and applications, pp. 5\u201314. ACM (2010)","DOI":"10.1145\/1863482.1863487"},{"key":"465_CR17","first-page":"243","volume":"38","author":"J Falcou","year":"2008","unstructured":"Falcou, J., S\u00e9rot, J.: Formal semantics applied to the implementation of a skeleton-based parallel programming library. Parallel Comput. Archit. Algorithms Appl. 38, 243\u2013252 (2008)","journal-title":"Parallel Comput. Archit. Algorithms Appl."},{"issue":"7","key":"465_CR18","doi-asserted-by":"publisher","first-page":"604","DOI":"10.1016\/j.parco.2006.06.001","volume":"32","author":"J Falcou","year":"2006","unstructured":"Falcou, J., S\u00e9rot, J., Chateau, T., Laprest\u00e9, J.-T.: Quaff: efficient c++ design for parallel skeletons. Parallel Comput. 32(7), 604\u2013615 (2006)","journal-title":"Parallel Comput."},{"issue":"15","key":"465_CR19","doi-asserted-by":"crossref","first-page":"2073","DOI":"10.1002\/cpe.1549","volume":"22","author":"H Gonz\u00e1lez-V\u00e9lez","year":"2010","unstructured":"Gonz\u00e1lez-V\u00e9lez, H., Cole, M.: Adaptive structured parallelism for distributed heterogeneous architectures: a methodological approach with pipelines and farms. Concurr. Comput. Pract. Exp. 22(15), 2073\u20132094 (2010)","journal-title":"Concurr. Comput. Pract. Exp."},{"issue":"12","key":"465_CR20","doi-asserted-by":"publisher","first-page":"1135","DOI":"10.1002\/spe.1026","volume":"40","author":"G-V Horacio","year":"2010","unstructured":"Horacio, G.-V., Leyton, M.: A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Softw. Pract. Exp. 40(12), 1135\u20131160 (2010)","journal-title":"Softw. Pract. Exp."},{"issue":"1","key":"465_CR21","doi-asserted-by":"publisher","first-page":"38","DOI":"10.1007\/s10766-009-0121-x","volume":"38","author":"C Grelck","year":"2010","unstructured":"Grelck, C., Scholz, S.-B., Shafarenko, A.: Asynchronous stream processing with s-net. Int. J. Parallel Program. 38(1), 38\u201367 (2010)","journal-title":"Int. J. Parallel Program."},{"key":"465_CR22","doi-asserted-by":"crossref","unstructured":"Hempel, R.: The MPI standard for message passing. In: International Conference on High-Performance Computing and Networking, pp. 247\u2013252. Springer (1994)","DOI":"10.1007\/3-540-57981-8_126"},{"key":"465_CR23","doi-asserted-by":"crossref","unstructured":"Hoare, C.A.R.: Communicating sequential processes. In: The Origin of Concurrent Programming, pp. 413\u2013443. Springer (1978)","DOI":"10.1007\/978-1-4757-3472-0_16"},{"key":"465_CR24","doi-asserted-by":"crossref","unstructured":"Hoefler, T., Belli, R.: Scientific benchmarking of parallel computing systems: twelve ways to tell the masses when reporting performance results. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC \u201915, pp. 73:1\u201373:12, New York, NY, USA, ACM (2015)","DOI":"10.1145\/2807591.2807644"},{"key":"465_CR25","unstructured":"Imam, S., Sarkar, V.: The Eureka programming model for speculative task parallelism. In: LIPIcs-Leibniz Internatinal Proceedings in Informatics, vol.\u00a037. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2015)"},{"key":"465_CR26","doi-asserted-by":"crossref","unstructured":"Isard, M., Budiu, M., Yu, Y., Birrell, A., Fetterly, D.: Dryad: distributed data-parallel programs from sequential building blocks. In: ACM SIGOPS Operating Systems Review, vol. 41, No. 3, pp. 59\u201372. ACM (2007)","DOI":"10.1145\/1272996.1273005"},{"key":"465_CR27","volume-title":"OSL: optimized Bulk Synchronous Parallel Skeletons on Distributed Arrays","author":"N Javed","year":"2009","unstructured":"Javed, N., Loulergue, F.: OSL: optimized Bulk Synchronous Parallel Skeletons on Distributed Arrays. Springer, Berlin (2009)"},{"issue":"10","key":"465_CR28","doi-asserted-by":"publisher","first-page":"227","DOI":"10.1145\/1639949.1640106","volume":"44","author":"D Leijen","year":"2009","unstructured":"Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. ACM Sigplan Notices 44(10), 227\u2013242 (2009)","journal-title":"ACM Sigplan Notices"},{"key":"465_CR29","doi-asserted-by":"crossref","unstructured":"Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ACM Sigplan Notices, vol. 43, No. 3, pp. 329\u2013339. ACM (2008)","DOI":"10.1145\/1346281.1346323"},{"key":"465_CR30","volume-title":"Structured Parallel Programming: Patterns for Efficient Computation","author":"M McCool","year":"2012","unstructured":"McCool, M., Reinders, J., Robison, A.: Structured Parallel Programming: Patterns for Efficient Computation. Elsevier, Amsterdam (2012)"},{"key":"465_CR31","volume-title":"Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism","author":"J Reinders","year":"2007","unstructured":"Reinders, J.: Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism. O\u2019Reilly Media Inc, Sebastopol (2007)"},{"key":"465_CR32","doi-asserted-by":"crossref","unstructured":"Saraswat, V.A., Sarkar, V., von Praun, C.: X10: concurrent programming for modern architectures. In: Proceedings of 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 271. ACM (2007)","DOI":"10.1145\/1229428.1229483"},{"key":"465_CR33","doi-asserted-by":"publisher","first-page":"491","DOI":"10.1007\/s002360050095","volume":"34","author":"R Stephens","year":"1997","unstructured":"Stephens, R.: A survey of stream processing. Acta Inform. 34, 491\u2013541 (1997)","journal-title":"Acta Inform."},{"key":"465_CR34","doi-asserted-by":"crossref","unstructured":"Thies, W., Amarasinghe, S.P.: An empirical characterization of stream programs and its implications for language and compiler design. In: Knoop, J., Salapura, V., Gschwind, M. (eds.) 19th International Conference on Parallel Architecture and Compilation Techniques, pp. 365\u2013376. ACM (2010)","DOI":"10.1145\/1854273.1854319"},{"key":"465_CR35","doi-asserted-by":"crossref","unstructured":"Thies, W., Karczmarek, M., Amarasinghe, S.: Streamit: A language for streaming applications. In: Compiler Construction, pp. 179\u2013196. Springer (2002)","DOI":"10.1007\/3-540-45937-5_14"},{"issue":"8","key":"465_CR36","doi-asserted-by":"publisher","first-page":"103","DOI":"10.1145\/79173.79181","volume":"33","author":"LG Valiant","year":"1990","unstructured":"Valiant, L.G.: A bridging model for parallel computation. CACM 33(8), 103\u2013111 (1990)","journal-title":"CACM"},{"key":"465_CR37","doi-asserted-by":"crossref","unstructured":"Valiant, L.G.: A bridging model for multi-core computing. In: Algorithms-ESA 2008, pp. 13\u201328. Springer (2008)","DOI":"10.1007\/978-3-540-87744-8_2"},{"key":"465_CR38","doi-asserted-by":"crossref","unstructured":"Walker, E.F., Floyd, R., Neves, P.: Asynchronous remote operation execution in distributed systems. In: Proceedings of 10th International Conference on Distributed Computing Systems, pp. 253\u2013259 (1990)","DOI":"10.1109\/ICDCS.1990.89292"},{"key":"465_CR39","first-page":"359","volume-title":"Algebra for Parallel and Distributed Processing, Chapter\u00a011","author":"S Yovine","year":"2008","unstructured":"Yovine, S., Assayad, I., Defaut, F.-X., Zanconi, M., Basu, A.: A formal approach to derivation of concurrent implementations in software product lines. In: Alexander, M., Gardner, W. (eds.) Algebra for Parallel and Distributed Processing, Chapter\u00a011, pp. 359\u2013401. Chapman and Hall, CRC Press, Boca Raton (2008)"},{"key":"465_CR40","doi-asserted-by":"crossref","unstructured":"Zandifar, M., Jabbar, M.A., Majidi, A., Keyes, D., Amato, N.M., Rauchwerger, L.: Composing algorithmic skeletons to express high-performance scientific applications. In: Proceedings of 29th ACM on International Conference on Supercomputing, pp. 415\u2013424. ACM (2015)","DOI":"10.1145\/2751205.2751241"},{"key":"465_CR41","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-17473-0_12","volume-title":"The STAPL Skeleton Framework","author":"M Zandifar","year":"2015","unstructured":"Zandifar, M., Thomas, N., Amato, N.M., Rauchwerger, L.: The STAPL Skeleton Framework. Springer, Cham (2015)"}],"container-title":["International Journal on Software Tools for Technology Transfer"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-017-0465-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10009-017-0465-2\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-017-0465-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,6,25]],"date-time":"2024-06-25T22:13:15Z","timestamp":1719353595000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10009-017-0465-2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,8,1]]},"references-count":41,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2019,4]]}},"alternative-id":["465"],"URL":"https:\/\/doi.org\/10.1007\/s10009-017-0465-2","relation":{},"ISSN":["1433-2779","1433-2787"],"issn-type":[{"value":"1433-2779","type":"print"},{"value":"1433-2787","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,8,1]]},"assertion":[{"value":"1 August 2017","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}