{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,11]],"date-time":"2026-07-11T04:03:08Z","timestamp":1783742588873,"version":"3.55.0"},"reference-count":26,"publisher":"Springer Science and Business Media LLC","issue":"9","license":[{"start":{"date-parts":[[2024,2,26]],"date-time":"2024-02-26T00:00:00Z","timestamp":1708905600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,2,26]],"date-time":"2024-02-26T00:00:00Z","timestamp":1708905600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100002322","name":"Coordena\u00e7\u00e3o de Aperfei\u00e7oamento de Pessoal de N\u00edvel Superior","doi-asserted-by":"publisher","award":["001"],"award-info":[{"award-number":["001"]}],"id":[{"id":"10.13039\/501100002322","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004263","name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado do Rio Grande do Sul","doi-asserted-by":"publisher","award":["21\/2551-0000725-7"],"award-info":[{"award-number":["21\/2551-0000725-7"]}],"id":[{"id":"10.13039\/501100004263","id-type":"DOI","asserted-by":"publisher"}]},{"name":"European Union's Horizon 2020 JTI-EuroHPC","award":["956748"],"award-info":[{"award-number":["956748"]}]},{"name":"European Union's Horizon 2020 JTI-EuroHPC","award":["956748"],"award-info":[{"award-number":["956748"]}]},{"DOI":"10.13039\/501100004837","name":"Ministerio de Ciencia e Innovaci\u00f3n","doi-asserted-by":"publisher","award":["956748"],"award-info":[{"award-number":["956748"]}],"id":[{"id":"10.13039\/501100004837","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004837","name":"Ministerio de Ciencia e Innovaci\u00f3n","doi-asserted-by":"publisher","award":["956748"],"award-info":[{"award-number":["956748"]}],"id":[{"id":"10.13039\/501100004837","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100006692","name":"Universit\u00e0 degli Studi di Torino","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100006692","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Supercomput"],"published-print":{"date-parts":[[2024,6]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>GrPPI library aims to simplify the burdening task of parallel programming. It provides a unified, abstract, and generic layer while promising minimal overhead on performance. Although it supports stream parallelism, GrPPI lacks an evaluation regarding representative performance metrics for this domain, such as throughput and latency. This work evaluates GrPPI focused on parallel stream processing. We compare the throughput and latency performance, memory usage, and programmability of GrPPI against handwritten parallel code. For this, we use the benchmarking framework SPBench to build custom GrPPI benchmarks and benchmarks with handwritten parallel code using the same backends supported by GrPPI. The basis of the benchmarks is real applications, such as Lane Detection, Bzip2, Face Recognizer, and Ferret. Experiments show that while performance is often competitive with handwritten parallel code, the infeasibility of fine-tuning GrPPI is a crucial drawback for emerging applications. Despite this, programmability experiments estimate that GrPPI can potentially reduce the development time of parallel applications by about three times.<\/jats:p>","DOI":"10.1007\/s11227-024-05934-z","type":"journal-article","created":{"date-parts":[[2024,2,26]],"date-time":"2024-02-26T05:02:44Z","timestamp":1708923764000},"page":"12966-13000","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Performance and programmability of GrPPI for parallel stream processing on multi-cores"],"prefix":"10.1007","volume":"80","author":[{"given":"Adriano Marques","family":"Garcia","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Dalvan","family":"Griebler","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Claudio","family":"Schepke","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jos\u00e9 Daniel","family":"Garc\u00eda","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Javier Fern\u00e1ndez","family":"Mu\u00f1oz","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Luiz Gustavo","family":"Fernandes","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2024,2,26]]},"reference":[{"key":"5934_CR1","volume-title":"Structured parallel programming: patterns for efficient computation","author":"M McCool","year":"2012","unstructured":"McCool M, Reinders J, Robison A (2012) Structured parallel programming: patterns for efficient computation. Elsevier, Amsterdam"},{"key":"5934_CR2","doi-asserted-by":"publisher","first-page":"261","DOI":"10.1002\/9781119332015.ch13","volume-title":"Programming multi-core and many-core computing systems","author":"M Aldinucci","year":"2017","unstructured":"Aldinucci M, Danelutto M, Kilpatrick P, Torquati M (2017) Fastflow: high-level and efficient streaming on multicore, Chap. 13. In: Pllana S, Xhafa F (eds) Programming multi-core and many-core computing systems. Wiley, Hoboken, pp 261\u2013280. https:\/\/doi.org\/10.1002\/9781119332015.ch13"},{"key":"5934_CR3","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4842-4398-5","volume-title":"Pro TBB: C++ parallel programming with threading building blocks","author":"M Voss","year":"2019","unstructured":"Voss M, Asenjo R, Reinders J (2019) Pro TBB: C++ parallel programming with threading building blocks, vol 295. Springer, Berkeley"},{"key":"5934_CR4","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4175","author":"D Rio Astorga","year":"2017","unstructured":"Rio Astorga D, Dolz MF, Fern\u00e1ndez J, Garc\u00eda JD (2017) A generic parallel pattern interface for stream and data processing. Concurrency Comput Pract Exp. https:\/\/doi.org\/10.1002\/cpe.4175","journal-title":"Concurrency Comput Pract Exp"},{"key":"5934_CR5","doi-asserted-by":"publisher","first-page":"228","DOI":"10.1016\/j.future.2018.05.011","volume":"87","author":"D del Rio Astorga","year":"2018","unstructured":"del Rio Astorga D, Dolz MF, Fern\u00e1ndez J, Garc\u00eda JD (2018) Paving the way towards high-level parallel pattern interfaces for data stream processing. Future Gen Comput Syst 87:228\u2013241. https:\/\/doi.org\/10.1016\/j.future.2018.05.011","journal-title":"Future Gen Comput Syst"},{"key":"5934_CR6","doi-asserted-by":"publisher","unstructured":"Mu\u00f1oz JF, Dolz MF, Rio\u00a0Astorga D, Cepeda JP, Garc\u00eda JD (2018) Supporting MPI-distributed stream parallel patterns in GrPPI. In: Proceedings of the 25th European MPI Users\u2019 Group Meeting, EuroMPI\u201918. ACM, New York, NY, USA. https:\/\/doi.org\/10.1145\/3236367.3236380","DOI":"10.1145\/3236367.3236380"},{"key":"5934_CR7","doi-asserted-by":"publisher","first-page":"24","DOI":"10.1016\/j.parco.2019.03.004","volume":"84","author":"J L\u00f3pez-G\u00f3mez","year":"2019","unstructured":"L\u00f3pez-G\u00f3mez J, Fern\u00e1ndez Mu\u00f1oz J, del Rio Astorga D, Dolz MF, Garcia JD (2019) Exploring stream parallel patterns in distributed MPI environments. Parallel Comput 84:24\u201336. https:\/\/doi.org\/10.1016\/j.parco.2019.03.004","journal-title":"Parallel Comput"},{"key":"5934_CR8","doi-asserted-by":"publisher","unstructured":"Garcia AM, Griebler D, Schepke C, Garc\u00eda JD, Mu\u00f1oz JF, Fernandes LG (2023) A latency, throughput, and programmability perspective of GrPPI for streaming on multi-cores. In: 31st Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), PDP\u201923. IEEE, Naples, Italy, pp 164\u2013168. https:\/\/doi.org\/10.1109\/PDP59025.2023.00033","DOI":"10.1109\/PDP59025.2023.00033"},{"key":"5934_CR9","doi-asserted-by":"publisher","DOI":"10.1007\/s00607-021-01025-6","author":"AM Garcia","year":"2022","unstructured":"Garcia AM, Griebler D, Schepke C, Fernandes LG (2022) SPBench: a framework for creating benchmarks of stream processing applications. Computing. https:\/\/doi.org\/10.1007\/s00607-021-01025-6","journal-title":"Computing"},{"issue":"6","key":"5934_CR10","doi-asserted-by":"publisher","first-page":"6759","DOI":"10.1002\/cpe.6759","volume":"34","author":"A Vogel","year":"2022","unstructured":"Vogel A, Griebler D, Danelutto M, Fernandes LG (2022) Self-adaptation on parallel stream processing: a systematic review. Concurrency Comput Pract Exp 34(6):6759. https:\/\/doi.org\/10.1002\/cpe.6759","journal-title":"Concurrency Comput Pract Exp"},{"issue":"7","key":"5934_CR11","doi-asserted-by":"publisher","first-page":"5139","DOI":"10.1007\/s11227-019-02826-5","volume":"76","author":"JD Garcia","year":"2020","unstructured":"Garcia JD, Rio D, Aldinucci M, Tordini F, Danelutto M, Mencagli G, Torquati M (2020) Challenging the abstraction penalty in parallel patterns libraries. J Supercomput 76(7):5139\u20135159. https:\/\/doi.org\/10.1007\/s11227-019-02826-5","journal-title":"J Supercomput"},{"key":"5934_CR12","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-022-05024-y","author":"AM Garcia","year":"2023","unstructured":"Garcia AM, Griebler D, Schepke C, Fernandes LG (2023) Micro-batch and data frequency for stream processing on multi-cores. J Supercomput. https:\/\/doi.org\/10.1007\/s11227-022-05024-y","journal-title":"J Supercomput"},{"key":"5934_CR13","doi-asserted-by":"publisher","unstructured":"Garcia-Blas J, Rio\u00a0Astorga D, Garc\u00eda JD, Carretero J (2019) Exploiting stream parallelism of MRI reconstruction using GrPPI over multiple back-ends. In: 2019 19th IEEE\/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID), pp 631\u2013637. https:\/\/doi.org\/10.1109\/CCGRID.2019.00081","DOI":"10.1109\/CCGRID.2019.00081"},{"key":"5934_CR14","unstructured":"V\u00edlchez\u00a0Moya C (2020) Application parallelization and debugging using pattern-based programming. Technical report, Undergraduate Thesis of Double Degree in Computer Engineering and Mathematics, Faculty of Informatics UCM, Department of Computer Architecture and Automation. https:\/\/eprints.ucm.es\/id\/eprint\/62014\/"},{"issue":"4","key":"5934_CR15","doi-asserted-by":"publisher","first-page":"603","DOI":"10.1007\/s10766-020-00667-x","volume":"48","author":"C Brown","year":"2020","unstructured":"Brown C, Janjic V, Barwell AD, Garcia JD, MacKenzie K (2020) Refactoring GrPPI: generic refactoring for generic parallelism in C++. Int J Parallel Prog 48(4):603\u2013625. https:\/\/doi.org\/10.1007\/s10766-020-00667-x","journal-title":"Int J Parallel Prog"},{"key":"5934_CR16","doi-asserted-by":"crossref","unstructured":"Andrade G, Griebler D, Santos R, Danelutto M, Fernandes LG (2021) Assessing coding metrics for parallel programming of stream processing programs on multi-cores. In: 47th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), SEAA\u201921. IEEE, Pavia, Italy, pp 291\u2013295","DOI":"10.1109\/SEAA53835.2021.00044"},{"key":"5934_CR17","doi-asserted-by":"crossref","unstructured":"Bienia C, Kumar S, Singh JP, Li K (2008) The PARSEC benchmark suite: characterization and architectural implications. In: Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques, pp 72\u201381","DOI":"10.1145\/1454115.1454128"},{"issue":"3","key":"5934_CR18","doi-asserted-by":"publisher","first-page":"36","DOI":"10.1109\/MSPEC.2020.9014458","volume":"57","author":"S Liu","year":"2020","unstructured":"Liu S, Gaudiot J-L (2020) Autonomous vehicles lite self-driving technologies should start small, go slow. IEEE Spectrum 57(3):36\u201349. https:\/\/doi.org\/10.1109\/MSPEC.2020.9014458","journal-title":"IEEE Spectrum"},{"key":"5934_CR19","doi-asserted-by":"publisher","DOI":"10.1007\/1-84628-168-7","volume-title":"A modern introduction to probability and statistics: understanding why and how","author":"FM Dekking","year":"2005","unstructured":"Dekking FM, Kraaikamp C, Lopuha\u00e4 HP, Meester LE (2005) A modern introduction to probability and statistics: understanding why and how, vol 488. Springer, Berkeley"},{"key":"5934_CR20","doi-asserted-by":"publisher","first-page":"736","DOI":"10.1016\/j.procs.2021.12.315","volume":"198","author":"HA Ignatious","year":"2022","unstructured":"Ignatious HA, Sayed H-E, Khan M (2022) An overview of sensors in autonomous vehicles. Procedia Comput Sci 198:736\u2013741. https:\/\/doi.org\/10.1016\/j.procs.2021.12.315","journal-title":"Procedia Comput Sci"},{"key":"5934_CR21","doi-asserted-by":"publisher","unstructured":"Bagwe GR (2018) Video frame reduction in autonomous vehicles. Master\u2019s Thesis, Michigan Technological University, Michigan, USA. https:\/\/doi.org\/10.37099\/mtu.dc.etdr\/645","DOI":"10.37099\/mtu.dc.etdr\/645"},{"key":"5934_CR22","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1016\/j.csi.2022.103691","volume":"84","author":"G Andrade","year":"2023","unstructured":"Andrade G, Griebler D, Santos R, Fernandes LG (2023) A parallel programming assessment for stream processing applications on multi-core systems. Comput Stand Interfaces 84:1\u201325. https:\/\/doi.org\/10.1016\/j.csi.2022.103691","journal-title":"Comput Stand Interfaces"},{"key":"5934_CR23","doi-asserted-by":"publisher","unstructured":"Andrade G, Griebler D, Santos R, Kessler C, Ernstsson A, Fernandes LG (2022) Analyzing programming effort model accuracy of high-level parallel programs for stream processing. In: Proceedings of the International Conference on Software Engineering and Advanced Applications, pp 229\u2013232. https:\/\/doi.org\/10.1109\/SEAA56994.2022.00043","DOI":"10.1109\/SEAA56994.2022.00043"},{"key":"5934_CR24","first-page":"4","volume-title":"Elements of software science","author":"MH Halstead","year":"1977","unstructured":"Halstead MH (1977) Elements of software science, vol 36. Elsevier, New York, pp 4\u201341"},{"issue":"na","key":"5934_CR25","doi-asserted-by":"publisher","first-page":"222900","DOI":"10.1109\/ACCESS.2020.3043948","volume":"8","author":"MV Bordin","year":"2020","unstructured":"Bordin MV, Griebler D, Mencagli G, Geyer CFR, Fernandes LG (2020) DSPBench: a suite of benchmark applications for distributed data stream processing systems. IEEE Access 8(na):222900\u2013222917. https:\/\/doi.org\/10.1109\/ACCESS.2020.3043948","journal-title":"IEEE Access"},{"issue":"01","key":"5934_CR26","doi-asserted-by":"publisher","first-page":"1740005","DOI":"10.1142\/S0129626417400059","volume":"27","author":"D Griebler","year":"2017","unstructured":"Griebler D, Danelutto M, Torquati M, Fernandes LG (2017) SPar: A DSL for high-level and productive stream parallelism. Parallel Process Lett 27(01):1740005","journal-title":"Parallel Process Lett"}],"container-title":["The Journal of Supercomputing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-024-05934-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s11227-024-05934-z\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11227-024-05934-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,6,4]],"date-time":"2024-06-04T06:48:47Z","timestamp":1717483727000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s11227-024-05934-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,2,26]]},"references-count":26,"journal-issue":{"issue":"9","published-print":{"date-parts":[[2024,6]]}},"alternative-id":["5934"],"URL":"https:\/\/doi.org\/10.1007\/s11227-024-05934-z","relation":{"has-preprint":[{"id-type":"doi","id":"10.21203\/rs.3.rs-3539774\/v1","asserted-by":"object"}]},"ISSN":["0920-8542","1573-0484"],"issn-type":[{"value":"0920-8542","type":"print"},{"value":"1573-0484","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,2,26]]},"assertion":[{"value":"27 January 2024","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"26 February 2024","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors have no competing interests as defined by Springer, or other interests that might be perceived to influence the results and\/or discussion reported in this paper.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}},{"value":"All authors have read and approved the final manuscript and agree with its submission to The Journal of Supercomputing.","order":3,"name":"Ethics","group":{"name":"EthicsHeading","label":"Consent for publication"}},{"value":"Not applicable.","order":4,"name":"Ethics","group":{"name":"EthicsHeading","label":"Ethics approval and consent to participate"}}]}}