PHI: A modern C++ library for parallel pattern composition | Research Square window.SnipcartSettings = { analytics: { enabled: false } }; (function() { var accessVector = localStorage.getItem('access_vector') || ''; window.dataLayer = window.dataLayer || []; if (accessVector) { window.dataLayer.push({ user: { profile: { profileInfo: { snid: accessVector } } } }); } })(); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-K279D39R'); Browse Preprints In Review Journals COVID-19 Preprints AJE Video Bytes Research Tools Research Promotion AJE Professional Editing AJE Rubriq About Preprint Platform In Review Editorial Policies Our Team Advisory Board Help Center Sign In Submit a Preprint Cite Share Download PDF Research Article PHI: A modern C++ library for parallel pattern composition Santiago Veigas-Ramirez, Daniel Martinez-Davies, J. Daniel Garcia This is a preprint; it has not been peer reviewed by a journal. https://doi.org/ 10.21203/rs.3.rs-7744073/v1 This work is licensed under a CC BY 4.0 License Status: Published Journal Publication published 16 Mar, 2026 Read the published version in International Journal of Parallel Programming → Version 1 posted 11 You are reading this latest preprint version Abstract This paper presents the design of PHI, a modern C++ library that allows for the composable expression of parallel computation patterns. Building upon the principles of GrPPI, PHI introduces a range-like interface that enables for declarative composition of parallel patterns by means of a pipe-like syntax that better aligns with contemporary C++ idioms. Additionally, PHI's architecture aims to separate pattern composition from its execution, allowing for backend-agnostic implementations, and the potential to integrate various execution models. Parallelism Ranges C++ Composition Full Text Additional Declarations No competing interests reported. Cite Share Download PDF Status: Published Journal Publication published 16 Mar, 2026 Read the published version in International Journal of Parallel Programming → Version 1 posted Editorial decision: Accepted 24 Feb, 2026 Reviews received at journal 05 Dec, 2025 Reviews received at journal 27 Nov, 2025 Reviews received at journal 24 Nov, 2025 Reviewers agreed at journal 30 Oct, 2025 Reviewers agreed at journal 29 Oct, 2025 Reviewers agreed at journal 29 Oct, 2025 Reviewers invited by journal 29 Oct, 2025 Editor assigned by journal 28 Oct, 2025 Submission checks completed at journal 04 Oct, 2025 First submitted to journal 29 Sep, 2025 You are reading this latest preprint version Research Square lets you share your work early, gain feedback from the community, and start making changes to your manuscript prior to peer review in a journal. As a division of Research Square Company, we’re committed to making research communication faster, fairer, and more useful. We do this by developing innovative software and high quality services for the global research community. Our growing team is made up of researchers and industry professionals working together to solve the most critical problems facing scientific publishing. Also discoverable on Platform About Our Team In Review Editorial Policies Advisory Board Help Center Resources Author Services Accessibility API Access RSS feed Manage Cookie Preferences © Research Square 2026 | ISSN 2693-5015 (online) Privacy Policy Terms of Service Do Not Sell My Personal Information {"props":{"pageProps":{"initialData":{"identity":"rs-7744073","acceptedTermsAndConditions":true,"allowDirectSubmit":false,"archivedVersions":[],"articleType":"Research Article","associatedPublications":[],"authors":[{"id":537433698,"identity":"68547d2c-1ee6-4279-a186-b6fd7a83c280","order_by":0,"name":"Santiago Veigas-Ramirez","email":"","orcid":"","institution":"Universidad Carlos III de Madrid","correspondingAuthor":false,"prefix":"","firstName":"Santiago","middleName":"","lastName":"Veigas-Ramirez","suffix":""},{"id":537433699,"identity":"a1b5fffb-52a3-4379-8151-048177543387","order_by":1,"name":"Daniel Martinez-Davies","email":"","orcid":"","institution":"Universidad Carlos III de Madrid","correspondingAuthor":false,"prefix":"","firstName":"Daniel","middleName":"","lastName":"Martinez-Davies","suffix":""},{"id":537433700,"identity":"d7378ef6-73fa-4e53-b210-a71a053aa70a","order_by":2,"name":"J. Daniel Garcia","email":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAyAQMAAABI0h/eAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA8klEQVRIiWNgGAWjYBACxoYEECXBwM/MwPAByLIjXotkMwPjDCArmQh7EiCUwQGIFsYGQhqY29Mvfq6osZA3Ps57sIGxzY5Zt4H58Ae8Dut5Uyx55piE4bbDfIlALcl8ZgfY0iTwapmRkyDZ2CDBuO0wj/kDxrYDzGYHeMzwOgyoJfknUIv95mYeQ6AtBxi3HeD/jN9hM9KPgWxJ3MAM18LDgN9hPW/YLBuOSSTPOAzUknAuOdnsMJsZXi2G7emPbzbU1Nn2958xbPhQZmdndrz5MV6HGTbwGCB4CSCCGZ96IJBnYH9AQMkoGAWjYBSMeAAA2olKqRz7fbcAAAAASUVORK5CYII=","orcid":"","institution":"Universidad Carlos III de Madrid","correspondingAuthor":true,"prefix":"","firstName":"J.","middleName":"Daniel","lastName":"Garcia","suffix":""}],"badges":[],"createdAt":"2025-09-29 16:38:18","currentVersionCode":1,"declarations":"","doi":"10.21203/rs.3.rs-7744073/v1","doiUrl":"https://doi.org/10.21203/rs.3.rs-7744073/v1","draftVersion":[],"editorialEvents":[{"content":"https://doi.org/10.1007/s10766-026-00810-0","type":"published","date":"2026-03-16T15:58:09+00:00"}],"editorialNote":"","failedWorkflow":false,"files":[{"id":95366676,"identity":"661dffbe-2fc0-46b4-92e5-d512f3d90294","added_by":"auto","created_at":"2025-11-07 08:50:49","extension":"json","order_by":0,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":4011,"visible":true,"origin":"","legend":"","description":"","filename":"40709ed9274246e18346bdbcaaa7640f.json","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/6d0af46c450a60cae0b4d849.json"},{"id":95524918,"identity":"2b9b966b-c3fc-424c-b84e-326e026c34ff","added_by":"auto","created_at":"2025-11-10 10:03:48","extension":"pdf","order_by":1,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":78170,"visible":true,"origin":"","legend":"","description":"","filename":"HLPPCoverLetter.pdf","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/613d4be51b9f13617d43ba57.pdf"},{"id":95526315,"identity":"118c7c07-a1dd-4b79-b8e4-5e0feda13bc7","added_by":"auto","created_at":"2025-11-10 10:06:45","extension":"pdf","order_by":2,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":895266,"visible":true,"origin":"","legend":"","description":"","filename":"HLPP2025phi.pdf","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/b51906fd2dbc7dda14f31249.pdf"},{"id":95525072,"identity":"3f2bc433-8755-4f1d-bab8-bbce282e1b38","added_by":"auto","created_at":"2025-11-10 10:04:10","extension":"png","order_by":3,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":317002,"visible":true,"origin":"","legend":"","description":"","filename":"blackscholesbenchmarks.png","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/4f3bd1ac80a83071381d828e.png"},{"id":95366679,"identity":"f81367b2-3ed0-45be-a698-1813129caf34","added_by":"auto","created_at":"2025-11-07 08:50:49","extension":"eps","order_by":4,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":2890,"visible":true,"origin":"","legend":"","description":"","filename":"empty.eps","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/f5a3fc7e1044bb95f301f0db.eps"},{"id":95366677,"identity":"30962ab9-08ab-4318-9e95-0724d9f5f12a","added_by":"auto","created_at":"2025-11-07 08:50:49","extension":"eps","order_by":5,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":91593,"visible":true,"origin":"","legend":"","description":"","filename":"fig.eps","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/eba1a4ac148a116a02e97900.eps"},{"id":95525834,"identity":"85a7c56b-63f3-4a36-a4d3-67cdd8b816e1","added_by":"auto","created_at":"2025-11-10 10:05:43","extension":"png","order_by":6,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":336254,"visible":true,"origin":"","legend":"","description":"","filename":"mandelbrotbenchmarks.png","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/b5adc34fea36d17c8ca9781c.png"},{"id":95366680,"identity":"055465b7-1cf9-419e-8ff2-3a03496f489b","added_by":"auto","created_at":"2025-11-07 08:50:49","extension":"cls","order_by":7,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":55857,"visible":true,"origin":"","legend":"","description":"","filename":"snjnl.cls","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/64eaa7166224629738f6da58.cls"},{"id":95366684,"identity":"83171758-b0ae-4190-8b3b-1de1d867990e","added_by":"auto","created_at":"2025-11-07 08:50:50","extension":"bst","order_by":8,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":64141,"visible":true,"origin":"","legend":"","description":"","filename":"snmathphysnum.bst","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/68f07b86415d0563b3995e4d.bst"},{"id":95366681,"identity":"fd5ba9fd-3829-4855-a469-472b1766a612","added_by":"auto","created_at":"2025-11-07 08:50:49","extension":"bst","order_by":9,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":37333,"visible":true,"origin":"","legend":"","description":"","filename":"snnature.bst","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/cfe1faeb02ec664324a03465.bst"},{"id":95366687,"identity":"ed8b2959-abff-4f69-9892-bbb5a1fe5403","added_by":"auto","created_at":"2025-11-07 08:50:50","extension":"png","order_by":10,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":160144,"visible":true,"origin":"","legend":"","description":"","filename":"Onlineblackscholesbenchmarks.png","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/83454a2d9593f845bb19c9cc.png"},{"id":95526141,"identity":"34f0b1c3-ccb3-469d-a996-f1378a13301a","added_by":"auto","created_at":"2025-11-10 10:06:21","extension":"png","order_by":11,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":170283,"visible":true,"origin":"","legend":"","description":"","filename":"Onlinemandelbrotbenchmarks.png","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/bef39ccda53617d5f185d4cb.png"},{"id":95366686,"identity":"75a59240-3097-464c-a4b8-c959e40f9e3d","added_by":"auto","created_at":"2025-11-07 08:50:50","extension":"xml","order_by":12,"title":"","display":"","copyAsset":false,"role":"acdc-reference","size":81644,"visible":true,"origin":"","legend":"","description":"","filename":"40709ed9274246e18346bdbcaaa7640f1structuring.xml","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1/8ae8aaab0bbc6e878dccaae5.xml"},{"id":105223400,"identity":"fb391626-31bf-4acc-b06e-2ee8e35c1701","added_by":"auto","created_at":"2026-03-23 16:05:42","extension":"pdf","order_by":1,"title":"","display":"","copyAsset":false,"role":"manuscript-pdf","size":787110,"visible":true,"origin":"","legend":"","description":"","filename":"HLPP2025phi.pdf","url":"https://assets-eu.researchsquare.com/files/rs-7744073/v1_covered_a45a1fc6-f6ef-46b0-8768-bdab02b37734.pdf"}],"financialInterests":"No competing interests reported.","formattedTitle":"PHI: A modern C++ library for parallel pattern composition","fulltext":[],"fulltextSource":"","fullText":"","funders":[],"hasAdminPriorityOnWorkflow":false,"hasManuscriptDocX":false,"hasOptedInToPreprint":true,"hasPassedJournalQc":"","hasAnyPriority":false,"hideJournal":false,"highlight":"","institution":"","isAcceptedByJournal":true,"isAuthorSuppliedPdf":true,"isDeskRejected":"","isHiddenFromSearch":false,"isInQc":false,"isInWorkflow":false,"isPdf":true,"isPdfUpToDate":true,"isWithdrawnOrRetracted":false,"journal":{"display":true,"email":"
[email protected]","identity":"international-journal-of-parallel-programming","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":false,"externalIdentity":"ijpp","sideBox":"Learn more about [International Journal of Parallel Programming](http://link.springer.com/journal/10766)","snPcode":"10766","submissionUrl":"https://submission.nature.com/new-submission/10766/3","title":"International Journal of Parallel Programming","twitterHandle":"","acdcEnabled":true,"dfaEnabled":true,"editorialSystem":"em","reportingPortfolio":"Springer Hybrid","inReviewEnabled":true,"inReviewRevisionsEnabled":false},"keywords":"Parallelism, Ranges, C++, Composition","lastPublishedDoi":"10.21203/rs.3.rs-7744073/v1","lastPublishedDoiUrl":"https://doi.org/10.21203/rs.3.rs-7744073/v1","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"manuscriptAbstract":"\nThis paper presents the design of PHI, a modern C++ library that allows for the composable expression of parallel computation patterns. Building upon the principles of GrPPI, PHI introduces a range-like interface that enables for declarative composition of parallel patterns by means of a pipe-like syntax that better aligns with contemporary C++ idioms. Additionally, PHI's architecture aims to separate pattern composition from its execution, allowing for backend-agnostic implementations, and the potential to integrate various execution models.\n","manuscriptTitle":"PHI: A modern C++ library for parallel pattern composition","msid":"","msnumber":"","nonDraftVersions":[{"code":1,"date":"2025-11-07 08:50:45","doi":"10.21203/rs.3.rs-7744073/v1","editorialEvents":[{"type":"communityComments","content":0},{"type":"decision","content":"Accepted","date":"2026-02-24T05:11:03+00:00","index":"","fulltext":""},{"type":"editorInvitedReview","content":"","date":"2025-12-05T15:45:24+00:00","index":"hide","fulltext":""},{"type":"editorInvitedReview","content":"","date":"2025-11-27T13:41:52+00:00","index":"hide","fulltext":""},{"type":"editorInvitedReview","content":"","date":"2025-11-24T10:53:48+00:00","index":"hide","fulltext":""},{"type":"reviewerAgreed","content":"252736038372638736437913861737949548437","date":"2025-10-30T10:47:36+00:00","index":"hide","fulltext":""},{"type":"reviewerAgreed","content":"275223869792509314200631202508278876786","date":"2025-10-29T08:43:59+00:00","index":"hide","fulltext":""},{"type":"reviewerAgreed","content":"38469772407300895944432739105305987365","date":"2025-10-29T08:33:59+00:00","index":"hide","fulltext":""},{"type":"reviewersInvited","content":"","date":"2025-10-29T07:22:43+00:00","index":"","fulltext":""},{"type":"editorAssigned","content":"","date":"2025-10-28T09:24:08+00:00","index":"","fulltext":""},{"type":"checksComplete","content":"","date":"2025-10-04T08:24:48+00:00","index":"","fulltext":""},{"type":"submitted","content":"International Journal of Parallel Programming","date":"2025-09-29T16:27:57+00:00","index":"","fulltext":""}],"status":"published","journal":{"display":true,"email":"
[email protected]","identity":"international-journal-of-parallel-programming","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":false,"externalIdentity":"ijpp","sideBox":"Learn more about [International Journal of Parallel Programming](http://link.springer.com/journal/10766)","snPcode":"10766","submissionUrl":"https://submission.nature.com/new-submission/10766/3","title":"International Journal of Parallel Programming","twitterHandle":"","acdcEnabled":true,"dfaEnabled":true,"editorialSystem":"em","reportingPortfolio":"Springer Hybrid","inReviewEnabled":true,"inReviewRevisionsEnabled":false}}],"origin":"","ownerIdentity":"dbc30add-3a5f-4e9d-95f5-7d8ade654542","owner":[],"postedDate":"November 7th, 2025","published":true,"recentEditorialEvents":[],"rejectedJournal":[],"revision":"","amendment":"","status":"published-in-journal","subjectAreas":[],"tags":[],"updatedAt":"2026-03-23T16:02:31+00:00","versionOfRecord":{"articleIdentity":"rs-7744073","link":"https://doi.org/10.1007/s10766-026-00810-0","journal":{"identity":"international-journal-of-parallel-programming","isVorOnly":false,"title":"International Journal of Parallel Programming"},"publishedOn":"2026-03-16 15:58:09","publishedOnDateReadable":"March 16th, 2026"},"versionCreatedAt":"2025-11-07 08:50:45","video":"","vorDoi":"10.1007/s10766-026-00810-0","vorDoiUrl":"https://doi.org/10.1007/s10766-026-00810-0","workflowStages":[]},"version":"v1","identity":"rs-7744073","journalConfig":"researchsquare"},"__N_SSP":true},"page":"/article/[identity]/[[...version]]","query":{"redirect":"/article/rs-7744073","identity":"rs-7744073","version":["v1"]},"buildId":"8U1c8b4HqxoKbykW_rLl7","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[84888],"gssp":true,"scriptLoader":[]}
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.