Loading…
On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures
This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-...
Saved in:
Published in: | Information (Basel) 2024-11, Vol.15 (11), p.673 |
---|---|
Main Authors: | , , , , , , , , , , , , , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | |
---|---|
cites | cdi_FETCH-LOGICAL-c282t-b9144e9d9632f7d792329e3dcd503425000d061be343bebf2a04709e46fb1a9f3 |
container_end_page | |
container_issue | 11 |
container_start_page | 673 |
container_title | Information (Basel) |
container_volume | 15 |
creator | Morgan, Nathaniel Yenusah, Caleb Diaz, Adrian Dunning, Daniel Moore, Jacob Heilman, Erin Roth, Calvin Lieberman, Evan Walton, Steven Brown, Sarah Holladay, Daniel Knezevic, Marko Whetstone, Gavin Baker, Zachary Robey, Robert |
description | This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-source C++ matrix and array (MATAR) library that uniquely offers: (1) a straightforward syntax for programming productivity, (2) usable data structures for data-oriented programming (DOP) for performance, and (3) a simple interface to the open-source C++ Kokkos library for portability and memory management across CPUs and GPUs. The portability across architectures with a single code implementation is achieved by automatically switching between diverse fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. The MATAR library solves many longstanding challenges associated with easily writing software that can run in parallel on any computer architecture. This work benefits projects seeking to write new C++ codes while also addressing the challenges of quickly making existing Fortran codes performant and portable over modern computer architectures with minimal syntactical changes from Fortran to C++. We demonstrate the feasibility of readily writing new C++ codes and modernizing existing codes with MATAR to be performant, parallel, and portable across diverse computer architectures. |
doi_str_mv | 10.3390/info15110673 |
format | article |
fullrecord | <record><control><sourceid>gale_doaj_</sourceid><recordid>TN_cdi_doaj_primary_oai_doaj_org_article_b90005bba94b461cbec2521162b0c6d5</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><galeid>A818337001</galeid><doaj_id>oai_doaj_org_article_b90005bba94b461cbec2521162b0c6d5</doaj_id><sourcerecordid>A818337001</sourcerecordid><originalsourceid>FETCH-LOGICAL-c282t-b9144e9d9632f7d792329e3dcd503425000d061be343bebf2a04709e46fb1a9f3</originalsourceid><addsrcrecordid>eNpNkU1LJDEQhhtZQVFv_oCg1x3NV3c6x2ZwVRAc2PUc8lFxMvR0ZpOM4L83M70sJocKlbee5K1qmmuC7xiT-D5MPpKWENwJdtKcUyz6BeW9_PHtfNZc5bzBdQnR856cN-F1Qhr9DtvdGHwAh4bdLkVt16hENNh1gA9AK530OMKIVpB8TFs9WUB6cmgVU9EmjKF8VnGKOaPl6u149VjjkCqggC37BPmyOfV6zHD1L140b78e_iyfFi-vj8_L4WVhaU_LwkjCOUgnO0a9cEJSRiUwZ12LGadt_bvDHTHAODNgPNWYCyyBd94QLT27aJ5nrot6o3YpbHX6VFEHdUzE9K50KsGOoIystNYYLbnhHbEGLG0pIR012HauraybmRVzCSrbg5m1jdNUPSnKRUtpX0W3s6g27u8eclGbuE9T9agYYQy3UuAD6m5Wvev68mFYJWlbt4NtqEjwoeaHnvSMCYxJLfg5Fxz7msD_90KwOkxcfZ84-wLGrZu-</addsrcrecordid><sourcetype>Open Website</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>3133059705</pqid></control><display><type>article</type><title>On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures</title><source>Publicly Available Content (ProQuest)</source><creator>Morgan, Nathaniel ; Yenusah, Caleb ; Diaz, Adrian ; Dunning, Daniel ; Moore, Jacob ; Heilman, Erin ; Roth, Calvin ; Lieberman, Evan ; Walton, Steven ; Brown, Sarah ; Holladay, Daniel ; Knezevic, Marko ; Whetstone, Gavin ; Baker, Zachary ; Robey, Robert</creator><creatorcontrib>Morgan, Nathaniel ; Yenusah, Caleb ; Diaz, Adrian ; Dunning, Daniel ; Moore, Jacob ; Heilman, Erin ; Roth, Calvin ; Lieberman, Evan ; Walton, Steven ; Brown, Sarah ; Holladay, Daniel ; Knezevic, Marko ; Whetstone, Gavin ; Baker, Zachary ; Robey, Robert</creatorcontrib><description>This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-source C++ matrix and array (MATAR) library that uniquely offers: (1) a straightforward syntax for programming productivity, (2) usable data structures for data-oriented programming (DOP) for performance, and (3) a simple interface to the open-source C++ Kokkos library for portability and memory management across CPUs and GPUs. The portability across architectures with a single code implementation is achieved by automatically switching between diverse fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. The MATAR library solves many longstanding challenges associated with easily writing software that can run in parallel on any computer architecture. This work benefits projects seeking to write new C++ codes while also addressing the challenges of quickly making existing Fortran codes performant and portable over modern computer architectures with minimal syntactical changes from Fortran to C++. We demonstrate the feasibility of readily writing new C++ codes and modernizing existing codes with MATAR to be performant, parallel, and portable across diverse computer architectures.</description><identifier>ISSN: 2078-2489</identifier><identifier>EISSN: 2078-2489</identifier><identifier>DOI: 10.3390/info15110673</identifier><language>eng</language><publisher>Basel: MDPI AG</publisher><subject>Application programming interface ; C plus plus ; C++ (programming language) ; Central processing units ; Codes ; CPUs ; Data structures ; dense and sparse data ; fine-grained parallelism ; FORTRAN ; Fourier transforms ; GPUs ; Graphics processing units ; Libraries ; Memory management ; Modernization ; Open source software ; Physics ; Portability ; productivity ; Programming languages ; Project feasibility ; Python ; Software ; Software development ; Source code ; Syntax</subject><ispartof>Information (Basel), 2024-11, Vol.15 (11), p.673</ispartof><rights>COPYRIGHT 2024 MDPI AG</rights><rights>2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c282t-b9144e9d9632f7d792329e3dcd503425000d061be343bebf2a04709e46fb1a9f3</cites><orcidid>0000-0002-0673-9741 ; 0000-0002-7611-8449 ; 0000-0002-4695-8105 ; 0000-0001-8190-0075 ; 0000-0002-4926-6569 ; 0000-0002-3744-5615 ; 0000-0001-8215-1379 ; 0000000181900075 ; 0000000237445615 ; 0000000206739741 ; 0000000182151379 ; 0000000246958105 ; 0000000276118449 ; 0000000249266569</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://www.proquest.com/docview/3133059705/fulltextPDF?pq-origsite=primo$$EPDF$$P50$$Gproquest$$Hfree_for_read</linktopdf><linktohtml>$$Uhttps://www.proquest.com/docview/3133059705?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>230,314,780,784,885,25753,27924,27925,37012,44590,74998</link.rule.ids><backlink>$$Uhttps://www.osti.gov/biblio/2475228$$D View this record in Osti.gov$$Hfree_for_read</backlink></links><search><creatorcontrib>Morgan, Nathaniel</creatorcontrib><creatorcontrib>Yenusah, Caleb</creatorcontrib><creatorcontrib>Diaz, Adrian</creatorcontrib><creatorcontrib>Dunning, Daniel</creatorcontrib><creatorcontrib>Moore, Jacob</creatorcontrib><creatorcontrib>Heilman, Erin</creatorcontrib><creatorcontrib>Roth, Calvin</creatorcontrib><creatorcontrib>Lieberman, Evan</creatorcontrib><creatorcontrib>Walton, Steven</creatorcontrib><creatorcontrib>Brown, Sarah</creatorcontrib><creatorcontrib>Holladay, Daniel</creatorcontrib><creatorcontrib>Knezevic, Marko</creatorcontrib><creatorcontrib>Whetstone, Gavin</creatorcontrib><creatorcontrib>Baker, Zachary</creatorcontrib><creatorcontrib>Robey, Robert</creatorcontrib><title>On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures</title><title>Information (Basel)</title><description>This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-source C++ matrix and array (MATAR) library that uniquely offers: (1) a straightforward syntax for programming productivity, (2) usable data structures for data-oriented programming (DOP) for performance, and (3) a simple interface to the open-source C++ Kokkos library for portability and memory management across CPUs and GPUs. The portability across architectures with a single code implementation is achieved by automatically switching between diverse fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. The MATAR library solves many longstanding challenges associated with easily writing software that can run in parallel on any computer architecture. This work benefits projects seeking to write new C++ codes while also addressing the challenges of quickly making existing Fortran codes performant and portable over modern computer architectures with minimal syntactical changes from Fortran to C++. We demonstrate the feasibility of readily writing new C++ codes and modernizing existing codes with MATAR to be performant, parallel, and portable across diverse computer architectures.</description><subject>Application programming interface</subject><subject>C plus plus</subject><subject>C++ (programming language)</subject><subject>Central processing units</subject><subject>Codes</subject><subject>CPUs</subject><subject>Data structures</subject><subject>dense and sparse data</subject><subject>fine-grained parallelism</subject><subject>FORTRAN</subject><subject>Fourier transforms</subject><subject>GPUs</subject><subject>Graphics processing units</subject><subject>Libraries</subject><subject>Memory management</subject><subject>Modernization</subject><subject>Open source software</subject><subject>Physics</subject><subject>Portability</subject><subject>productivity</subject><subject>Programming languages</subject><subject>Project feasibility</subject><subject>Python</subject><subject>Software</subject><subject>Software development</subject><subject>Source code</subject><subject>Syntax</subject><issn>2078-2489</issn><issn>2078-2489</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><sourceid>DOA</sourceid><recordid>eNpNkU1LJDEQhhtZQVFv_oCg1x3NV3c6x2ZwVRAc2PUc8lFxMvR0ZpOM4L83M70sJocKlbee5K1qmmuC7xiT-D5MPpKWENwJdtKcUyz6BeW9_PHtfNZc5bzBdQnR856cN-F1Qhr9DtvdGHwAh4bdLkVt16hENNh1gA9AK530OMKIVpB8TFs9WUB6cmgVU9EmjKF8VnGKOaPl6u149VjjkCqggC37BPmyOfV6zHD1L140b78e_iyfFi-vj8_L4WVhaU_LwkjCOUgnO0a9cEJSRiUwZ12LGadt_bvDHTHAODNgPNWYCyyBd94QLT27aJ5nrot6o3YpbHX6VFEHdUzE9K50KsGOoIystNYYLbnhHbEGLG0pIR012HauraybmRVzCSrbg5m1jdNUPSnKRUtpX0W3s6g27u8eclGbuE9T9agYYQy3UuAD6m5Wvev68mFYJWlbt4NtqEjwoeaHnvSMCYxJLfg5Fxz7msD_90KwOkxcfZ84-wLGrZu-</recordid><startdate>20241101</startdate><enddate>20241101</enddate><creator>Morgan, Nathaniel</creator><creator>Yenusah, Caleb</creator><creator>Diaz, Adrian</creator><creator>Dunning, Daniel</creator><creator>Moore, Jacob</creator><creator>Heilman, Erin</creator><creator>Roth, Calvin</creator><creator>Lieberman, Evan</creator><creator>Walton, Steven</creator><creator>Brown, Sarah</creator><creator>Holladay, Daniel</creator><creator>Knezevic, Marko</creator><creator>Whetstone, Gavin</creator><creator>Baker, Zachary</creator><creator>Robey, Robert</creator><general>MDPI AG</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7XB</scope><scope>8AL</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0N</scope><scope>P5Z</scope><scope>P62</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>Q9U</scope><scope>OTOTI</scope><scope>DOA</scope><orcidid>https://orcid.org/0000-0002-0673-9741</orcidid><orcidid>https://orcid.org/0000-0002-7611-8449</orcidid><orcidid>https://orcid.org/0000-0002-4695-8105</orcidid><orcidid>https://orcid.org/0000-0001-8190-0075</orcidid><orcidid>https://orcid.org/0000-0002-4926-6569</orcidid><orcidid>https://orcid.org/0000-0002-3744-5615</orcidid><orcidid>https://orcid.org/0000-0001-8215-1379</orcidid><orcidid>https://orcid.org/0000000181900075</orcidid><orcidid>https://orcid.org/0000000237445615</orcidid><orcidid>https://orcid.org/0000000206739741</orcidid><orcidid>https://orcid.org/0000000182151379</orcidid><orcidid>https://orcid.org/0000000246958105</orcidid><orcidid>https://orcid.org/0000000276118449</orcidid><orcidid>https://orcid.org/0000000249266569</orcidid></search><sort><creationdate>20241101</creationdate><title>On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures</title><author>Morgan, Nathaniel ; Yenusah, Caleb ; Diaz, Adrian ; Dunning, Daniel ; Moore, Jacob ; Heilman, Erin ; Roth, Calvin ; Lieberman, Evan ; Walton, Steven ; Brown, Sarah ; Holladay, Daniel ; Knezevic, Marko ; Whetstone, Gavin ; Baker, Zachary ; Robey, Robert</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c282t-b9144e9d9632f7d792329e3dcd503425000d061be343bebf2a04709e46fb1a9f3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Application programming interface</topic><topic>C plus plus</topic><topic>C++ (programming language)</topic><topic>Central processing units</topic><topic>Codes</topic><topic>CPUs</topic><topic>Data structures</topic><topic>dense and sparse data</topic><topic>fine-grained parallelism</topic><topic>FORTRAN</topic><topic>Fourier transforms</topic><topic>GPUs</topic><topic>Graphics processing units</topic><topic>Libraries</topic><topic>Memory management</topic><topic>Modernization</topic><topic>Open source software</topic><topic>Physics</topic><topic>Portability</topic><topic>productivity</topic><topic>Programming languages</topic><topic>Project feasibility</topic><topic>Python</topic><topic>Software</topic><topic>Software development</topic><topic>Source code</topic><topic>Syntax</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Morgan, Nathaniel</creatorcontrib><creatorcontrib>Yenusah, Caleb</creatorcontrib><creatorcontrib>Diaz, Adrian</creatorcontrib><creatorcontrib>Dunning, Daniel</creatorcontrib><creatorcontrib>Moore, Jacob</creatorcontrib><creatorcontrib>Heilman, Erin</creatorcontrib><creatorcontrib>Roth, Calvin</creatorcontrib><creatorcontrib>Lieberman, Evan</creatorcontrib><creatorcontrib>Walton, Steven</creatorcontrib><creatorcontrib>Brown, Sarah</creatorcontrib><creatorcontrib>Holladay, Daniel</creatorcontrib><creatorcontrib>Knezevic, Marko</creatorcontrib><creatorcontrib>Whetstone, Gavin</creatorcontrib><creatorcontrib>Baker, Zachary</creatorcontrib><creatorcontrib>Robey, Robert</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>Computing Database (Alumni Edition)</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & Aerospace Database (1962 - current)</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection (Proquest) (PQ_SDU_P3)</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Computing Database</collection><collection>ProQuest Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>Publicly Available Content (ProQuest)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>ProQuest Central Basic</collection><collection>OSTI.GOV</collection><collection>DOAJ Directory of Open Access Journals</collection><jtitle>Information (Basel)</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Morgan, Nathaniel</au><au>Yenusah, Caleb</au><au>Diaz, Adrian</au><au>Dunning, Daniel</au><au>Moore, Jacob</au><au>Heilman, Erin</au><au>Roth, Calvin</au><au>Lieberman, Evan</au><au>Walton, Steven</au><au>Brown, Sarah</au><au>Holladay, Daniel</au><au>Knezevic, Marko</au><au>Whetstone, Gavin</au><au>Baker, Zachary</au><au>Robey, Robert</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures</atitle><jtitle>Information (Basel)</jtitle><date>2024-11-01</date><risdate>2024</risdate><volume>15</volume><issue>11</issue><spage>673</spage><pages>673-</pages><issn>2078-2489</issn><eissn>2078-2489</eissn><abstract>This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-source C++ matrix and array (MATAR) library that uniquely offers: (1) a straightforward syntax for programming productivity, (2) usable data structures for data-oriented programming (DOP) for performance, and (3) a simple interface to the open-source C++ Kokkos library for portability and memory management across CPUs and GPUs. The portability across architectures with a single code implementation is achieved by automatically switching between diverse fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. The MATAR library solves many longstanding challenges associated with easily writing software that can run in parallel on any computer architecture. This work benefits projects seeking to write new C++ codes while also addressing the challenges of quickly making existing Fortran codes performant and portable over modern computer architectures with minimal syntactical changes from Fortran to C++. We demonstrate the feasibility of readily writing new C++ codes and modernizing existing codes with MATAR to be performant, parallel, and portable across diverse computer architectures.</abstract><cop>Basel</cop><pub>MDPI AG</pub><doi>10.3390/info15110673</doi><orcidid>https://orcid.org/0000-0002-0673-9741</orcidid><orcidid>https://orcid.org/0000-0002-7611-8449</orcidid><orcidid>https://orcid.org/0000-0002-4695-8105</orcidid><orcidid>https://orcid.org/0000-0001-8190-0075</orcidid><orcidid>https://orcid.org/0000-0002-4926-6569</orcidid><orcidid>https://orcid.org/0000-0002-3744-5615</orcidid><orcidid>https://orcid.org/0000-0001-8215-1379</orcidid><orcidid>https://orcid.org/0000000181900075</orcidid><orcidid>https://orcid.org/0000000237445615</orcidid><orcidid>https://orcid.org/0000000206739741</orcidid><orcidid>https://orcid.org/0000000182151379</orcidid><orcidid>https://orcid.org/0000000246958105</orcidid><orcidid>https://orcid.org/0000000276118449</orcidid><orcidid>https://orcid.org/0000000249266569</orcidid><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 2078-2489 |
ispartof | Information (Basel), 2024-11, Vol.15 (11), p.673 |
issn | 2078-2489 2078-2489 |
language | eng |
recordid | cdi_doaj_primary_oai_doaj_org_article_b90005bba94b461cbec2521162b0c6d5 |
source | Publicly Available Content (ProQuest) |
subjects | Application programming interface C plus plus C++ (programming language) Central processing units Codes CPUs Data structures dense and sparse data fine-grained parallelism FORTRAN Fourier transforms GPUs Graphics processing units Libraries Memory management Modernization Open source software Physics Portability productivity Programming languages Project feasibility Python Software Software development Source code Syntax |
title | On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T19%3A20%3A29IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-gale_doaj_&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=On%20a%20Simplified%20Approach%20to%20Achieve%20Parallel%20Performance%20and%20Portability%20Across%20CPU%20and%20GPU%20Architectures&rft.jtitle=Information%20(Basel)&rft.au=Morgan,%20Nathaniel&rft.date=2024-11-01&rft.volume=15&rft.issue=11&rft.spage=673&rft.pages=673-&rft.issn=2078-2489&rft.eissn=2078-2489&rft_id=info:doi/10.3390/info15110673&rft_dat=%3Cgale_doaj_%3EA818337001%3C/gale_doaj_%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c282t-b9144e9d9632f7d792329e3dcd503425000d061be343bebf2a04709e46fb1a9f3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=3133059705&rft_id=info:pmid/&rft_galeid=A818337001&rfr_iscdi=true |