<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi Sebastian, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111936#M24417</link>
    <description>&lt;P&gt;Hi Sebastian,&lt;/P&gt;

&lt;P&gt;I have redirected this thread to MKL forum who can help with the best data layout for using MKL routines.&lt;/P&gt;

&lt;P&gt;Thanks and Regards&lt;BR /&gt;
	Anoop&lt;/P&gt;</description>
    <pubDate>Thu, 30 Jun 2016 18:42:29 GMT</pubDate>
    <dc:creator>Anoop_M_Intel</dc:creator>
    <dc:date>2016-06-30T18:42:29Z</dc:date>
    <item>
      <title>Efficient storage of 3D field data</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111935#M24416</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;in working on a numerical code, which solves a discretised equation on a three dimensional grid. I have multiple fields (around 80) I need to save on this grid and which are needed to compute my results. I want to perform my computations (which consist of rather simple operations (as product / dot product) to set up a sparse matrix and solve this matrix using MKL. My questions are:&lt;/P&gt;

&lt;P&gt;1) What ist the most efficient way to store the data? Using a 1D array or a multidimensional array? At the moment I'm using a 1D array and accessing it in my innermost loop using&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;for kk...
for jj...
for ii...
for (int k = 0 ; k &amp;lt; 8 l k++){
for (int j = 0 ; j &amp;lt; 8 ; j++){
for (int i = 0 ; i &amp;lt; 8 ; i++){
   field1[offset + i] += field2[offset + i]
}}}
}}}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;in order to get good spacial and temporal data locality. The data is aligned in such a way, that offset is always a multiple of 8. To do so - as far as I understood - my data should be aligned to a 64 byte boundary. Since I have many blocks consisting of ni x nj x nk cells, this alignment leads to a quite high overhead (the factor between aligned and unaligned data is between 1.5 and 2). Is there a more efficient way to store my data?&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Sebastian&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jun 2016 10:51:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111935#M24416</guid>
      <dc:creator>Sebastian_U_1</dc:creator>
      <dc:date>2016-06-29T10:51:31Z</dc:date>
    </item>
    <item>
      <title>Hi Sebastian,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111936#M24417</link>
      <description>&lt;P&gt;Hi Sebastian,&lt;/P&gt;

&lt;P&gt;I have redirected this thread to MKL forum who can help with the best data layout for using MKL routines.&lt;/P&gt;

&lt;P&gt;Thanks and Regards&lt;BR /&gt;
	Anoop&lt;/P&gt;</description>
      <pubDate>Thu, 30 Jun 2016 18:42:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111936#M24417</guid>
      <dc:creator>Anoop_M_Intel</dc:creator>
      <dc:date>2016-06-30T18:42:29Z</dc:date>
    </item>
    <item>
      <title>in the case if you are going</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111937#M24418</link>
      <description>&lt;P&gt;in the case if you are going to use some sparse mkl's routines, then you will need to convert your format to the CSR or another sparse formats are supported my mkl. There are some axiliary routines which will help you to make conversion from one format to another. see MKL Reference for details.&lt;/P&gt;</description>
      <pubDate>Fri, 01 Jul 2016 06:50:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Efficient-storage-of-3D-field-data/m-p/1111937#M24418</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2016-07-01T06:50:07Z</dc:date>
    </item>
  </channel>
</rss>

