Loading…
High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor
Summary We present a high‐performance implementation of the lattice‐Boltzmann method (LBM) on the Knights Landing generation of Xeon Phi. The Knights Landing architecture includes 16GB of high‐speed memory (MCDRAM) with a reported bandwidth of over 400 GB/s, and a subset of the AVX‐512 single instru...
Saved in:
Published in: | Concurrency and computation 2019-07, Vol.31 (13), p.n/a |
---|---|
Main Authors: | , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303 |
---|---|
cites | cdi_FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303 |
container_end_page | n/a |
container_issue | 13 |
container_start_page | |
container_title | Concurrency and computation |
container_volume | 31 |
creator | Robertsén, Fredrik Mattila, Keijo Westerholm, Jan |
description | Summary
We present a high‐performance implementation of the lattice‐Boltzmann method (LBM) on the Knights Landing generation of Xeon Phi. The Knights Landing architecture includes 16GB of high‐speed memory (MCDRAM) with a reported bandwidth of over 400 GB/s, and a subset of the AVX‐512 single instruction multiple data (SIMD) instruction set. We explain five critical implementation aspects for high performance on this architecture: (1) the choice of appropriate LBM algorithm, (2) suitable data layout, (3) vectorization of the computation, (4) data prefetching, and (5) running our LBM simulations exclusively from the MCDRAM. The effects of these implementation aspects on the computational performance are demonstrated with the lattice‐Boltzmann scheme involving the D3Q19 discrete velocity set and the TRT collision operator. In our benchmark simulations of fluid flow through porous media, using double‐precision floating‐point arithmetic, the observed performance exceeds 960 million fluid lattice site updates per second. |
doi_str_mv | 10.1002/cpe.5072 |
format | article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2235574145</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2235574145</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303</originalsourceid><addsrcrecordid>eNp10M9Kw0AQBvBFFKxV8BEWvHhJ3b9pctRabaFiQQVvS7KdtSlJNu5ukXryEXxGn8StFW-e5jv8ZgY-hE4pGVBC2IXuYCDJkO2hHpWcJSTlYv8vs_QQHXm_IoRSwmkPlZPqZfn18dmBM9Y1RasBP0zvrnHVdDU00IYiVLbF1uCwBFwXIVQa4sKVrcN79C1uICztAke0Fc8Qw3xZ4c5ZDd5bd4wOTFF7OPmdffR0M34cTZLZ_e10dDlLNJc5S7JcFzIzwFnJTc5BMFZkNOMLmmeEpJqXvDTMEJYxKQiUIhU5SakAzYqh5oT30dnubvz8ugYf1MquXRtfKsa4lENBhYzqfKe0s947MKpzVVO4jaJEbRtUsUG1bTDSZEffqho2_zo1mo9__DdEo3La</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2235574145</pqid></control><display><type>article</type><title>High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor</title><source>Wiley-Blackwell Read & Publish Collection</source><creator>Robertsén, Fredrik ; Mattila, Keijo ; Westerholm, Jan</creator><creatorcontrib>Robertsén, Fredrik ; Mattila, Keijo ; Westerholm, Jan</creatorcontrib><description>Summary
We present a high‐performance implementation of the lattice‐Boltzmann method (LBM) on the Knights Landing generation of Xeon Phi. The Knights Landing architecture includes 16GB of high‐speed memory (MCDRAM) with a reported bandwidth of over 400 GB/s, and a subset of the AVX‐512 single instruction multiple data (SIMD) instruction set. We explain five critical implementation aspects for high performance on this architecture: (1) the choice of appropriate LBM algorithm, (2) suitable data layout, (3) vectorization of the computation, (4) data prefetching, and (5) running our LBM simulations exclusively from the MCDRAM. The effects of these implementation aspects on the computational performance are demonstrated with the lattice‐Boltzmann scheme involving the D3Q19 discrete velocity set and the TRT collision operator. In our benchmark simulations of fluid flow through porous media, using double‐precision floating‐point arithmetic, the observed performance exceeds 960 million fluid lattice site updates per second.</description><identifier>ISSN: 1532-0626</identifier><identifier>EISSN: 1532-0634</identifier><identifier>DOI: 10.1002/cpe.5072</identifier><language>eng</language><publisher>Hoboken: Wiley Subscription Services, Inc</publisher><subject>Algorithms ; Central processing units ; Computational fluid dynamics ; Computer simulation ; CPUs ; Fluid flow ; Landing ; Lattice Boltzmann ; Mathematical analysis ; Microprocessors ; Porous media ; Porous media flow ; prefetching ; SIMD ; SIMD (computers) ; Vector processing (computers) ; Xeon Phi</subject><ispartof>Concurrency and computation, 2019-07, Vol.31 (13), p.n/a</ispartof><rights>2018 John Wiley & Sons, Ltd.</rights><rights>2019 John Wiley & Sons, Ltd.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303</citedby><cites>FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303</cites><orcidid>0000-0001-8455-274X</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Robertsén, Fredrik</creatorcontrib><creatorcontrib>Mattila, Keijo</creatorcontrib><creatorcontrib>Westerholm, Jan</creatorcontrib><title>High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor</title><title>Concurrency and computation</title><description>Summary
We present a high‐performance implementation of the lattice‐Boltzmann method (LBM) on the Knights Landing generation of Xeon Phi. The Knights Landing architecture includes 16GB of high‐speed memory (MCDRAM) with a reported bandwidth of over 400 GB/s, and a subset of the AVX‐512 single instruction multiple data (SIMD) instruction set. We explain five critical implementation aspects for high performance on this architecture: (1) the choice of appropriate LBM algorithm, (2) suitable data layout, (3) vectorization of the computation, (4) data prefetching, and (5) running our LBM simulations exclusively from the MCDRAM. The effects of these implementation aspects on the computational performance are demonstrated with the lattice‐Boltzmann scheme involving the D3Q19 discrete velocity set and the TRT collision operator. In our benchmark simulations of fluid flow through porous media, using double‐precision floating‐point arithmetic, the observed performance exceeds 960 million fluid lattice site updates per second.</description><subject>Algorithms</subject><subject>Central processing units</subject><subject>Computational fluid dynamics</subject><subject>Computer simulation</subject><subject>CPUs</subject><subject>Fluid flow</subject><subject>Landing</subject><subject>Lattice Boltzmann</subject><subject>Mathematical analysis</subject><subject>Microprocessors</subject><subject>Porous media</subject><subject>Porous media flow</subject><subject>prefetching</subject><subject>SIMD</subject><subject>SIMD (computers)</subject><subject>Vector processing (computers)</subject><subject>Xeon Phi</subject><issn>1532-0626</issn><issn>1532-0634</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><recordid>eNp10M9Kw0AQBvBFFKxV8BEWvHhJ3b9pctRabaFiQQVvS7KdtSlJNu5ukXryEXxGn8StFW-e5jv8ZgY-hE4pGVBC2IXuYCDJkO2hHpWcJSTlYv8vs_QQHXm_IoRSwmkPlZPqZfn18dmBM9Y1RasBP0zvrnHVdDU00IYiVLbF1uCwBFwXIVQa4sKVrcN79C1uICztAke0Fc8Qw3xZ4c5ZDd5bd4wOTFF7OPmdffR0M34cTZLZ_e10dDlLNJc5S7JcFzIzwFnJTc5BMFZkNOMLmmeEpJqXvDTMEJYxKQiUIhU5SakAzYqh5oT30dnubvz8ugYf1MquXRtfKsa4lENBhYzqfKe0s947MKpzVVO4jaJEbRtUsUG1bTDSZEffqho2_zo1mo9__DdEo3La</recordid><startdate>20190710</startdate><enddate>20190710</enddate><creator>Robertsén, Fredrik</creator><creator>Mattila, Keijo</creator><creator>Westerholm, Jan</creator><general>Wiley Subscription Services, Inc</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><orcidid>https://orcid.org/0000-0001-8455-274X</orcidid></search><sort><creationdate>20190710</creationdate><title>High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor</title><author>Robertsén, Fredrik ; Mattila, Keijo ; Westerholm, Jan</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Algorithms</topic><topic>Central processing units</topic><topic>Computational fluid dynamics</topic><topic>Computer simulation</topic><topic>CPUs</topic><topic>Fluid flow</topic><topic>Landing</topic><topic>Lattice Boltzmann</topic><topic>Mathematical analysis</topic><topic>Microprocessors</topic><topic>Porous media</topic><topic>Porous media flow</topic><topic>prefetching</topic><topic>SIMD</topic><topic>SIMD (computers)</topic><topic>Vector processing (computers)</topic><topic>Xeon Phi</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Robertsén, Fredrik</creatorcontrib><creatorcontrib>Mattila, Keijo</creatorcontrib><creatorcontrib>Westerholm, Jan</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Concurrency and computation</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Robertsén, Fredrik</au><au>Mattila, Keijo</au><au>Westerholm, Jan</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor</atitle><jtitle>Concurrency and computation</jtitle><date>2019-07-10</date><risdate>2019</risdate><volume>31</volume><issue>13</issue><epage>n/a</epage><issn>1532-0626</issn><eissn>1532-0634</eissn><abstract>Summary
We present a high‐performance implementation of the lattice‐Boltzmann method (LBM) on the Knights Landing generation of Xeon Phi. The Knights Landing architecture includes 16GB of high‐speed memory (MCDRAM) with a reported bandwidth of over 400 GB/s, and a subset of the AVX‐512 single instruction multiple data (SIMD) instruction set. We explain five critical implementation aspects for high performance on this architecture: (1) the choice of appropriate LBM algorithm, (2) suitable data layout, (3) vectorization of the computation, (4) data prefetching, and (5) running our LBM simulations exclusively from the MCDRAM. The effects of these implementation aspects on the computational performance are demonstrated with the lattice‐Boltzmann scheme involving the D3Q19 discrete velocity set and the TRT collision operator. In our benchmark simulations of fluid flow through porous media, using double‐precision floating‐point arithmetic, the observed performance exceeds 960 million fluid lattice site updates per second.</abstract><cop>Hoboken</cop><pub>Wiley Subscription Services, Inc</pub><doi>10.1002/cpe.5072</doi><tpages>1</tpages><orcidid>https://orcid.org/0000-0001-8455-274X</orcidid></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1532-0626 |
ispartof | Concurrency and computation, 2019-07, Vol.31 (13), p.n/a |
issn | 1532-0626 1532-0634 |
language | eng |
recordid | cdi_proquest_journals_2235574145 |
source | Wiley-Blackwell Read & Publish Collection |
subjects | Algorithms Central processing units Computational fluid dynamics Computer simulation CPUs Fluid flow Landing Lattice Boltzmann Mathematical analysis Microprocessors Porous media Porous media flow prefetching SIMD SIMD (computers) Vector processing (computers) Xeon Phi |
title | High‐performance SIMD implementation of the lattice‐Boltzmann method on the Xeon Phi processor |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-26T18%3A12%3A25IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=High%E2%80%90performance%20SIMD%20implementation%20of%20the%20lattice%E2%80%90Boltzmann%20method%20on%20the%20Xeon%20Phi%20processor&rft.jtitle=Concurrency%20and%20computation&rft.au=Roberts%C3%A9n,%20Fredrik&rft.date=2019-07-10&rft.volume=31&rft.issue=13&rft.epage=n/a&rft.issn=1532-0626&rft.eissn=1532-0634&rft_id=info:doi/10.1002/cpe.5072&rft_dat=%3Cproquest_cross%3E2235574145%3C/proquest_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c3592-89ca58fe32b3f93e422a8183d198006c3b3bf2f0282540eb46490614ec2a7c303%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2235574145&rft_id=info:pmid/&rfr_iscdi=true |