{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,19]],"date-time":"2026-06-19T19:50:36Z","timestamp":1781898636433,"version":"3.54.5"},"reference-count":25,"publisher":"Springer Science and Business Media LLC","issue":"1-2","license":[{"start":{"date-parts":[[2026,4,16]],"date-time":"2026-04-16T00:00:00Z","timestamp":1776297600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2026,4,16]],"date-time":"2026-04-16T00:00:00Z","timestamp":1776297600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100003945","name":"Link\u00f6ping University","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100003945","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Parallel Prog"],"published-print":{"date-parts":[[2026,6]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    We present SkePU-Streaming, a two-layer high-level programming framework for specifying complex pipelines composed of portable multi-backend stream processing tasks, each expressed by algorithmic skeletons or user-provided implementations, and its deployment toolchain for distributed heterogeneous parallel systems. Pipeline tasks can have multiple implementation variants to more flexibly exploit the resources of heterogeneous nodes; the convenient expression of multi-variant tasks is achieved by integrating the high-level C++-based skeleton programming framework\n                    <jats:italic>SkePU<\/jats:italic>\n                    with its multiple backends as the main method for portable programming of the stream-processing tasks. Concretely, SkePU-Streaming adds an abstraction layer for pipeline workflow specifications atop SkePU-based task specifications. It extends the SkePU data-container API with stream access operators for use within SkePU and other C++ task code. We present the SkePU-Streaming design and its implementation in a deployment framework for distributed heterogeneous parallel systems, and demonstrate its use with two different video processing applications.\n                  <\/jats:p>","DOI":"10.1007\/s10766-026-00814-w","type":"journal-article","created":{"date-parts":[[2026,4,16]],"date-time":"2026-04-16T14:43:51Z","timestamp":1776350631000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["SkePU-Streaming: Distributed Pipelining of Portable Data-Parallel Skeleton Computations for the Heterogeneous Edge-Cloud Continuum"],"prefix":"10.1007","volume":"54","author":[{"given":"August","family":"Svensson","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Fabio","family":"Crugnola","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"August","family":"Ernstsson","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Sajad","family":"Khosravi","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Sebastian","family":"Litzinger","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alexander","family":"Lindskog","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christoph","family":"Kessler","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2026,4,16]]},"reference":[{"key":"814_CR1","doi-asserted-by":"publisher","unstructured":"Khosravi, S., Kessler, C., Litzinger, S., Keller, J.: Energy-efficient scheduling of moldable streaming computations for the edge-cloud continuum. In: 9th Int. Conf. on Fog and Mobile Edge Computing (FMEC), pp. 268\u2013276 (2024). https:\/\/doi.org\/10.1109\/FMEC62297.2024.10710310","DOI":"10.1109\/FMEC62297.2024.10710310"},{"key":"814_CR2","doi-asserted-by":"publisher","first-page":"846","DOI":"10.1007\/s10766-021-00704-3","volume":"49","author":"A Ernstsson","year":"2021","unstructured":"Ernstsson, A., Ahlqvist, J., Zouzoula, S., Kessler, C.: SkePU 3: Portable high-level programming of heterogeneous systems and HPC clusters. Int. J. Parallel Program. 49, 846\u2013866 (2021). https:\/\/doi.org\/10.1007\/s10766-021-00704-3","journal-title":"Int. J. of Parallel Programming"},{"issue":"3","key":"814_CR3","doi-asserted-by":"publisher","first-page":"389","DOI":"10.1016\/j.parco.2003.12.002","volume":"30","author":"M Cole","year":"2004","unstructured":"Cole, M.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput. 30(3), 389\u2013406 (2004). https:\/\/doi.org\/10.1016\/j.parco.2003.12.002","journal-title":"Parallel Comput."},{"key":"814_CR4","unstructured":"Svensson, A.: SkePU Streaming: Distributed stream processing pipelines for the heterogeneous edge-cloud continuum. In: Master thesis LIU-IDA\/LITH-EX-A-24\/087-SE, Dept. Computer and Inf. Science, Link\u00f6ping Univ., Sweden (2024)"},{"issue":"5","key":"814_CR5","doi-asserted-by":"publisher","first-page":"481","DOI":"10.1002\/cpe.1844","volume":"24","author":"C Kessler","year":"2012","unstructured":"Kessler, C., L\u00f6we, W.: Optimized composition of performance-aware parallel components. Concurr. Comput: Practice Exp. 24(5), 481\u2013498 (2012). https:\/\/doi.org\/10.1002\/cpe.1844","journal-title":"Concurrency and Computation: Practice and Experience"},{"issue":"5","key":"814_CR6","doi-asserted-by":"publisher","first-page":"28","DOI":"10.1109\/MM.2011.67","volume":"31","author":"S Benkner","year":"2011","unstructured":"Benkner, S., Pllana, S., Larsson Traff, J., Tsigas, P., Dolinsky, U., Augonnet, C., Bachmayer, B., Kessler, C., Moloney, D., Osipov, V.: PEPPHER: Efficient and productive usage of hybrid computing systems. IEEE Micro. 31(5), 28\u201341 (2011). https:\/\/doi.org\/10.1109\/MM.2011.67","journal-title":"IEEE Micro"},{"issue":"12","key":"814_CR7","doi-asserted-by":"publisher","first-page":"1195","DOI":"10.1007\/s00607-013-0371-8","volume":"96","author":"U Dastgeer","year":"2014","unstructured":"Dastgeer, U., Li, L., Kessler, C.: The PEPPHER composition tool: performance-aware composition for GPU-based systems. Computing 96(12), 1195\u20131211 (2014). https:\/\/doi.org\/10.1007\/s00607-013-0371-8","journal-title":"Computing"},{"key":"814_CR8","doi-asserted-by":"crossref","unstructured":"Ernstsson, A.: Pattern-based Programming Abstractions for Heterogeneous Parallel Computing. PhD thesis, Link\u00f6ping University Electronic Press (2022)","DOI":"10.3384\/9789179291969"},{"key":"814_CR9","unstructured":"Kahn, G.: The semantics of a simple language for parallel programming. In: Proc. IFIP Congress on Information Processing, pp. 471\u2013475 (1974)"},{"key":"814_CR10","doi-asserted-by":"publisher","unstructured":"Dastgeer, U., Li, L., Kessler, C.: Adaptive implementation selection in the SkePU skeleton programming library. In: Revised Selected Papers of 10th Int. Symp. on Advanced Par. Processing Techn. (APPT\u201913) - Vol. 8299, pp. 170\u2013183. Springer, Berlin, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-45293-2_13","DOI":"10.1007\/978-3-642-45293-2_13"},{"issue":"3","key":"814_CR11","doi-asserted-by":"publisher","first-page":"506","DOI":"10.1007\/s10766-015-0357-6","volume":"44","author":"U Dastgeer","year":"2016","unstructured":"Dastgeer, U., Kessler, C.: Smart containers and skeleton programming for GPU-based systems. Int. J. of Parallel Progra. 44(3), 506\u2013530 (2016). https:\/\/doi.org\/10.1007\/s10766-015-0357-6","journal-title":"Int. J. of Parallel Programming"},{"issue":"5","key":"814_CR12","doi-asserted-by":"publisher","first-page":"5003","DOI":"10.1002\/cpe.5003","volume":"31","author":"A Ernstsson","year":"2019","unstructured":"Ernstsson, A., Kessler, C.: Extending smart containers for data locality-aware skeleton programming. Concurr. Comput.: Pract. Exp. 31(5), 5003 (2019). https:\/\/doi.org\/10.1002\/cpe.5003","journal-title":"Concurrency and Comput.: Pract. Exp."},{"key":"814_CR13","doi-asserted-by":"publisher","unstructured":"Br\u00e4unl, T., Feyrer, S., Rapf, W., Reinhardt, M.: Parallel Image Processing. Springer, Berlin Heidelberg New York (2001). https:\/\/doi.org\/10.1007\/978-3-662-04327-1","DOI":"10.1007\/978-3-662-04327-1"},{"key":"814_CR14","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-05082-8","volume-title":"Invasive Software Composition","author":"U A\u00dfmann","year":"2003","unstructured":"A\u00dfmann, U.: Invasive Software Composition. Springer, Berlin\/Heidelberg (2003)."},{"key":"814_CR15","doi-asserted-by":"publisher","first-page":"54","DOI":"10.1145\/3486897","volume":"65","author":"MR Crusoe","year":"2022","unstructured":"Crusoe, M.R., Abeln, S., Iosup, A., Amstutz, P., Chilton, J., Tijanic, N., M\u00e9nager, H., Soiland-Reyes, S., Gavrilovic, B., Goble, C., et al.: Methods included: standardizing computational reuse and portability with the common workflow language. Comm. ACM 65, 54\u201363 (2022). https:\/\/doi.org\/10.1145\/3486897","journal-title":"Comm. ACM"},{"key":"814_CR16","doi-asserted-by":"publisher","unstructured":"Colonnelli, I., Cantalupo, B., Merelli, I., Aldinucci, M.: StreamFlow: cross-breeding cloud with HPC. IEEE Trans. Emerg. Top. Comput. 1723\u20131737 (2021). https:\/\/doi.org\/10.1109\/TETC.2020.3019202","DOI":"10.1109\/TETC.2020.3019202"},{"key":"814_CR17","doi-asserted-by":"publisher","first-page":"67","DOI":"10.1007\/s10723-013-9272-5","volume":"12","author":"F Lordan","year":"2014","unstructured":"Lordan, F., Tejedor, E., Ejarque, J., Rafanell, R., Alvarez, J., Marozzo, F., Lezzi, D., Sirvent, R., Talia, D., Badia, R.M.: ServiceSs: an interoperable programming framework for the cloud. J Grid Comput. 12, 67\u201391 (2014). https:\/\/doi.org\/10.1007\/s10723-013-9272-5","journal-title":"J Grid Computing"},{"key":"814_CR18","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-025-00789-0","author":"ME Santimaria","year":"2025","unstructured":"Santimaria, M.E., Martinelli, A.R., Colonnelli, I., Cantalupo, B., Torquati, M., Aldinucci, M.: CAPIO-CL: The CAPIO coordination language. Int. J. Parallel Prog. (2025). https:\/\/doi.org\/10.1007\/s10766-025-00789-0","journal-title":"Int. J. Parallel Prog."},{"key":"814_CR19","doi-asserted-by":"publisher","DOI":"10.3389\/fhpcp.2024.1472719","author":"O Yildiz","year":"2024","unstructured":"Yildiz, O., Morozov, D., Nigmetov, A., Nicolae, B., Peterka, T.: Wilkins: HPC in situ workflows made easy. Frontiers High Perform. Comput. (2024). https:\/\/doi.org\/10.3389\/fhpcp.2024.1472719","journal-title":"Frontiers in High Performance Computing"},{"key":"814_CR20","doi-asserted-by":"publisher","unstructured":"Martinelli, A.R., Torquati, M., Aldinucci, M., Colonnelli, I., Cantalupo, B.: CAPIO: a middleware for transparent I\/O streaming in data-intensive workflows. In: Proc. IEEE 30th Int. Conf. on High Perf. Computing, Data, and Analytics (HiPC), pp. 153\u2013163 (2023). https:\/\/doi.org\/10.1109\/HiPC58850.2023.00031","DOI":"10.1109\/HiPC58850.2023.00031"},{"key":"814_CR21","doi-asserted-by":"publisher","unstructured":"Aldinucci, M., Danelutto, M., Kilpatrick, P., Torquati, M.: Fastflow: High-level and efficient streaming on multicore. In: Pllana, S., Xhafa, F. (eds.) Programming Multi?core and Many?core Computing Systems, pp. 261\u2013280. John Wiley & Sons, Hoboken (2017). https:\/\/doi.org\/10.1002\/9781119332015.ch13","DOI":"10.1002\/9781119332015.ch13"},{"key":"814_CR22","doi-asserted-by":"publisher","unstructured":"Garcia, A.M., Griebler, D., Fernandes, L.G.L., Schepke, C.: Introducing a stream processing framework for assessing parallel programming interfaces. In: Proc. PDP\u201921 Conf., pp. 84\u201388 (2021). https:\/\/doi.org\/10.1109\/PDP52278.2021.00021","DOI":"10.1109\/PDP52278.2021.00021"},{"key":"814_CR23","doi-asserted-by":"publisher","unstructured":"Pagliari, A., Huet, F., Urvoy-Keller, G.: Towards a high-level description for generating stream processing benchmark applications. In: Proc. 2019 IEEE Int. Conf. on Big Data (Big Data), pp. 3711\u20133716 (2019). https:\/\/doi.org\/10.1109\/BigData47090.2019.9006278","DOI":"10.1109\/BigData47090.2019.9006278"},{"key":"814_CR24","doi-asserted-by":"publisher","unstructured":"Agrawal, D., Butt, A., Doshi, K., Larriba-Pey, J.-L., Li, M., Reiss, F.R., Raab, F., Schiefer, B., Suzumura, T., Xia, Y.: SparkBench\u2014a Spark performance testing suite. In: Proc. 7th Techn. Conf. on Perf. Evaluation and Benchmarking (TPCTC), pp. 26\u201344 (2015). https:\/\/doi.org\/10.1007\/978-3-319-31409-9_3","DOI":"10.1007\/978-3-319-31409-9_3"},{"key":"814_CR25","doi-asserted-by":"crossref","unstructured":"Thies, W., Amarasinghe, S.: An empirical characterization of stream programs and its implications for language and compiler design. In: Proc. 19th Int. Conf. on Parallel Architectures and Compilation Techniques (PACT), pp. 365\u2013376 (2010). https:\/\/ieeexplore.ieee.org\/document\/7851535","DOI":"10.1145\/1854273.1854319"}],"container-title":["International Journal of Parallel Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-026-00814-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10766-026-00814-w","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-026-00814-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,19]],"date-time":"2026-06-19T18:53:27Z","timestamp":1781895207000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10766-026-00814-w"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,4,16]]},"references-count":25,"journal-issue":{"issue":"1-2","published-print":{"date-parts":[[2026,6]]}},"alternative-id":["814"],"URL":"https:\/\/doi.org\/10.1007\/s10766-026-00814-w","relation":{},"ISSN":["0885-7458","1573-7640"],"issn-type":[{"value":"0885-7458","type":"print"},{"value":"1573-7640","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,4,16]]},"assertion":[{"value":"21 October 2025","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 February 2026","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"16 April 2026","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare no Conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}},{"value":"Not applicable","order":3,"name":"Ethics","group":{"name":"EthicsHeading","label":"Ethics approval"}}],"article-number":"7"}}