<?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 Thank you very much John! Now in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060243#M5104</link>
    <description>&lt;P&gt;Thank you very much John! Now I get it and based on your comment I am able to get aligned access using the !DIR$ VECTOR ALIGNED directive. I am also seeing a very sizable performance improvement.&lt;/P&gt;

&lt;P&gt;As an experiment I tried changing the indexing to start from 1 instead of -55 and redeclared the array Ui(307) rather than Ui(-207:100). This modification gives another ~15% performance over padding the array down to -207. Any explanation of what is causing this?&lt;/P&gt;

&lt;P&gt;C&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 28 Jan 2015 12:41:17 GMT</pubDate>
    <dc:creator>PKM</dc:creator>
    <dc:date>2015-01-28T12:41:17Z</dc:date>
    <item>
      <title>Problem in aligning Fortran arrays in simple code example</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060241#M5102</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;

&lt;P&gt;I am optimizing a Fortran code that essentially spends all its time in the 90 line self contained example found below. The critical part of the example is the innermost loop (line 57 - !The critical loop is here!) and I am struggling to obtain aligned access to my arrays from here. No matter what I do the optimization report (attached) keeps telling me the arrays are unaligned both in the case of MIC offload and Intel AVX compilation. I am using the latest version of Parallel studio on Windows with visual studio 2012 and I have tried to align the arrays both by compiler switches (/align:array64byte) and by directives (!DIR$ ATTRIBUTES ALIGN : 64 ::).&lt;/P&gt;

&lt;P&gt;Any help in getting this code properly vectorized will be greatly appreciated!&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;C&lt;/P&gt;

&lt;P&gt;module mData&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8,dimension(-50:50)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: RAll&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8,dimension(-200:100)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: LambdaAll,LambdaAll2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8,dimension(-200:100)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: Ri,Ei,Fi,Hi,Un,Ui&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8,dimension(-200:100,1:20)&amp;nbsp;&amp;nbsp; :: RefAll,UAll,E2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8,dimension(1:20)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: FiltResp&lt;BR /&gt;
	!dir$ attributes offload : mic :: LambdaAll,LambdaAll2,Ri,Ei,Fi,Hi,Un,Ui,RefAll,Uall,E2,Filtresp,RAll&lt;BR /&gt;
	!$OMP THREADPRIVATE(LambdaAll,LambdaAll2,Ri,Ei,Fi,Hi,Un,RefAll,Uall,E2,Filtresp,RAll)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end module mData&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; module mComputations&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; contains&lt;BR /&gt;
	!dir$ attributes offload : mic :: DoComputations&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; subroutine DoComputations(iNoModels)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; use omp_lib&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; use mData&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, intent(in) :: iNoModels&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :: I2,I,J,IJMinCalc,IJMaxCalc,NoModels,t,k,Models&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8&amp;nbsp; :: SMy,Rs,ki2,Exparg,Nom,Denom,NLayM,time,E&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; real*8&amp;nbsp; :: Sigma(30),Thick(30), Timebegin,TimeEnd,Val,Kn2&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; NLayM=30&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Sigma(:)=0.1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; Thick(:)=2.5&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; ijMinCalc=-55&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; ijMaxCalc=16&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Variables&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeBegin=omp_get_wtime()&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; !Loop over models&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; NoModels=iNoModels&lt;BR /&gt;
	!$OMP PARALLEL DEFAULT(PRIVATE) SHARED(NoModels,NLayM,Thick,Sigma,ijmincalc,ijmaxcalc)&lt;BR /&gt;
	!$OMP DO&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; do Models=1,NoModels&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !Loop over times - 50&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do t=1,30&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time=log(2d0)/(1e-6*10**((t-1d0)/10d0)) &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E=10**0.1&lt;BR /&gt;
	!DEC$ SIMD&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I = ijmincalc,ijmaxcalc&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Val = E**(I)*0.1d0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lambdaAll2(I) = Val*Val&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !Loop over frequencies - 16&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do k=1,16&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SMy=4*3.14e-7*time &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! start from the lowest layer&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kn2 = Smy*real(sigma(NLayM))&lt;BR /&gt;
	!DEC$ SIMD&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do J=ijmincalc,ijmaxcalc&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Un(J) = sqrt(LambdaAll2(J)+kn2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fi(J) = 0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I2=NLayM-1,1,-1 ! this loop calculates from N-1 to 1 going upwar&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs = SMy*(sigma(I2)-sigma(I2+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ki2 = Smy*real(sigma(I2))&lt;BR /&gt;
	!DEC$ SIMD&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do J=ijmincalc,ijmaxcalc&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !The critical loop is here!&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ui(J) = sqrt(LambdaAll2(J)+ki2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hi(J) = Ui(J)+Un(J)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ri(J) = rs/(Hi(J)*Hi(J))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exparg = -2.d0*ui(j)*Thick(I2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ei(J) = exp(exparg)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nom = (Ei(J)*(Ri(J)+Fi(J)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; denom = (1.d0+Ri(J)*Fi(J))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fi(J) = nom/denom&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Un(J) = Ui(J)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enddo&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;
	!$OMP END DO&lt;BR /&gt;
	!$OMP END PARALLEL&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeEnd=omp_get_wtime()&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'Models/s=',NoModels*1d0/(TimeEnd-TimeBegin)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end subroutine DoComputations&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end module mComputations &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; program kernelopt&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; use mComputations&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'CPU execution:'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call omp_set_num_threads(8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call DoComputations(224*8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; print *,'Xeon offload:'&lt;BR /&gt;
	!DIR$ OFFLOAD BEGIN TARGET(mic:0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call omp_set_num_threads(224)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call DoComputations(224*100)&lt;BR /&gt;
	!DIR$ END OFFLOAD&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end program kernelopt&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2015 13:55:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060241#M5102</guid>
      <dc:creator>PKM</dc:creator>
      <dc:date>2015-01-27T13:55:58Z</dc:date>
    </item>
    <item>
      <title>If I did the arithmetic</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060242#M5103</link>
      <description>&lt;P&gt;If I did the arithmetic correctly, aligning array the base of array Ui to match the 256-bit or 512-bit alignment will guarantee that the critical loop (which starts operating on Ui(-55)) will *not* be aligned.&amp;nbsp;&amp;nbsp; For both 256-bit and 512-bit vectors, if Ui(-200) is placed on an aligned address, then Ui(-55) maps to the second 8-Byte address in the vector field.&lt;/P&gt;

&lt;P&gt;I don't know if it is possible to request than an array be specifically mis-aligned so that the target starting point within the array is aligned.&lt;/P&gt;

&lt;P&gt;In this case padding the array size to Ui(-207:100) will ensure that the beginning of the array and Ui(-55) have the same alignment with respect to both 256-bit and 512-bit vector addresses.&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Similar considerations apply to the other arrays used in the critical loop.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2015 23:16:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060242#M5103</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2015-01-27T23:16:53Z</dc:date>
    </item>
    <item>
      <title>Thank you very much John! Now</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060243#M5104</link>
      <description>&lt;P&gt;Thank you very much John! Now I get it and based on your comment I am able to get aligned access using the !DIR$ VECTOR ALIGNED directive. I am also seeing a very sizable performance improvement.&lt;/P&gt;

&lt;P&gt;As an experiment I tried changing the indexing to start from 1 instead of -55 and redeclared the array Ui(307) rather than Ui(-207:100). This modification gives another ~15% performance over padding the array down to -207. Any explanation of what is causing this?&lt;/P&gt;

&lt;P&gt;C&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Jan 2015 12:41:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060243#M5104</guid>
      <dc:creator>PKM</dc:creator>
      <dc:date>2015-01-28T12:41:17Z</dc:date>
    </item>
    <item>
      <title>I suppose that eliminating</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060244#M5105</link>
      <description>&lt;P&gt;I suppose that eliminating empty padding from your arrays may improve effectiveness of cache.&amp;nbsp; You would need more detailed analysis, e.g. by counting cache and TLB hits, misses, fills and evictions in VTune.&amp;nbsp; It may not be worth the effort when you can get good results by the more straightforward method.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Jan 2015 13:56:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060244#M5105</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-01-28T13:56:00Z</dc:date>
    </item>
    <item>
      <title>Ok - thanks ...</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060245#M5106</link>
      <description>&lt;P&gt;Ok - thanks ...&lt;/P&gt;</description>
      <pubDate>Wed, 28 Jan 2015 14:09:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Problem-in-aligning-Fortran-arrays-in-simple-code-example/m-p/1060245#M5106</guid>
      <dc:creator>PKM</dc:creator>
      <dc:date>2015-01-28T14:09:39Z</dc:date>
    </item>
  </channel>
</rss>

