<?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 Marios, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011772#M19256</link>
    <description>&lt;P&gt;Hi Marios,&lt;/P&gt;

&lt;P&gt;If iterations of the outer loop over mcsweeps depend on each other in a simple way (for example, say, you need summation of the results obtained for each iteration k), you could do the blocks of&amp;nbsp;iterations in parallel, calculate an save the intermediate results into additional memory, and then&amp;nbsp; combine them into the final result in the serial part of the function, after the parallel loop is done. Amount of the additional memory is defined by the number of threads used in the code.&lt;/P&gt;

&lt;P&gt;To run parallel Monte Carlo simulations you would need one of MKL basic random number generators suitable for goals of your application.&amp;nbsp;RNGs in Intel MKL&amp;nbsp;support parallel simulations via several techniques such as leap-frog, skip-ahead, and a family of BRNGs;&amp;nbsp;each thread would produce&amp;nbsp; it's own sequence. High level overview of the techniques is available in VSL Training materials at &lt;A href="https://software.intel.com/en-us/articles/intel-mkl-vsl-training-material"&gt;https://software.intel.com/en-us/articles/intel-mkl-vsl-training-material,&lt;/A&gt; slides 9-13. Additional details are available in VSL RNG Notes at &lt;A href="https://software.intel.com/en-us/mkl_11.1_vslnotes"&gt;https://software.intel.com/en-us/mkl_11.1_vslnotes,&lt;/A&gt; section "Random Streams and RNGs in parallel computations"; for each basic random number generator the document describes supported parallelization techniques.&lt;/P&gt;

&lt;P&gt;Please, let me know, if you need more details.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;</description>
    <pubDate>Tue, 13 May 2014 09:53:38 GMT</pubDate>
    <dc:creator>Andrey_N_Intel</dc:creator>
    <dc:date>2014-05-13T09:53:38Z</dc:date>
    <item>
      <title>random numbers with vdrnguniform</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011763#M19247</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;I want to generate random number with the &lt;SPAN style="FONT-STYLE: normal"&gt;&lt;SPAN style="FONT-STYLE: italic"&gt;SFMT19937&lt;/SPAN&gt;&lt;/SPAN&gt; generator. Everything works fine as long as I store the random numbers to a vector, e.g&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;.... 
      brng=VSL_BRNG_SFMT19937

      method=VSL_RNG_METHOD_UNIFORM_STD
      seed=1777

      errcode=vslnewstream( stream, brng,  seed )

      do j = 1,1000
       
         errcode=vdrnguniform( method, stream, n, r, lb, ub )
         write(1,*) r(j)
       end do&lt;/PRE&gt;

&lt;P&gt;with this I fill r(1000) with double real random numbers, since the argument r in&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;vdrnguniform&lt;/PRE&gt;

&lt;P&gt;is a vector.&lt;/P&gt;

&lt;P&gt;Is there a way just to generate them without storing them to a vector?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I want to generate several trillions of random numbers for a monte-carlo simulation.&lt;/P&gt;

&lt;P&gt;Storing them to an array doesn't seem like a good idea....&lt;/P&gt;</description>
      <pubDate>Fri, 09 May 2014 22:18:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011763#M19247</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-09T22:18:35Z</dc:date>
    </item>
    <item>
      <title>There is no requirement that</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011764#M19248</link>
      <description>&lt;P&gt;There is no requirement that the fourth argument to &lt;STRONG&gt;vdrnguniform&lt;/STRONG&gt;, &lt;STRONG&gt;a,&lt;/STRONG&gt; be a vector. If you enable interface checking, and you wish to retrieve a single random number with a call to the generator, declare the array as &lt;STRONG&gt;a(1)&lt;/STRONG&gt;. Alternatively, leave out the USE MKL_VSL statement, to bypass the argument type checking.&lt;/P&gt;

&lt;P&gt;You have a great deal of flexibility in whether to generate batches of random numbers into a buffer, to be used and replenished as required, or to generate a single random number with each call.&lt;/P&gt;</description>
      <pubDate>Sat, 10 May 2014 12:41:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011764#M19248</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-05-10T12:41:45Z</dc:date>
    </item>
    <item>
      <title>If I declare the array as r(1</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011765#M19249</link>
      <description>&lt;P&gt;If I declare the array as r(1) then the following code:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;s=0.0d0 
n=20000
 do j = 1, n
              
  errcode=vdrnguniform( method, stream, n, r, lb, ub )
               s = s + r(1)
                write(1,*) r(1)

    end do&lt;/PRE&gt;

&lt;P&gt;produces an access violation run-time error. Specifically I get: forrtl: severe (157): Program Exception - access violation&lt;/P&gt;</description>
      <pubDate>Sat, 10 May 2014 16:21:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011765#M19249</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-10T16:21:43Z</dc:date>
    </item>
    <item>
      <title>If I leave out the USE MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011766#M19250</link>
      <description>&lt;P&gt;If I leave out the USE MKL_VSL statement I get compilation warnings:&lt;/P&gt;

&lt;P&gt;\Source1.f90(118): warning #6717: This name has not been given an explicit type.&amp;nbsp;&amp;nbsp; [VSLNEWSTREAM]&lt;BR /&gt;
	\Source1.f90(127): warning #6717: This name has not been given an explicit type.&amp;nbsp;&amp;nbsp; [VDRNGUNIFORM]&lt;BR /&gt;
	\Source1.f90(139): warning #6717: This name has not been given an explicit type.&amp;nbsp;&amp;nbsp; [VSLSAVESTREAMF]&lt;BR /&gt;
	\Source1.f90(143): warning #6717: This name has not been given an explicit type.&amp;nbsp;&amp;nbsp; [VSLDELETESTREAM]&lt;/P&gt;

&lt;P&gt;and the code:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;              
              do j = 1, n        
               errcode=vdrnguniform( method, stream, n, r1, lb, ub )
               s = s + r1
                write(1,*) r1  
              end do&lt;/PRE&gt;

&lt;P&gt;where r1 this time is just a double real variable again produces forrtl: severe (157): Program Exception - access violation at run-time&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 10 May 2014 16:32:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011766#M19250</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-10T16:32:11Z</dc:date>
    </item>
    <item>
      <title>Hi Marios,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011767#M19251</link>
      <description>&lt;P&gt;Hi Marios,&lt;/P&gt;

&lt;P&gt;In large scale Monte Carlo simulations that require significant amount of random numbers you generally do not need to store all of them in memory. As Mecej4 mentions above, random numbers can be generated as blocks of the fixed size, and generation of random numbers&amp;nbsp;can be followed by their immediate processing &amp;nbsp;as shown below&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;
do i = 1,Nexperiments
! size of array n can be aligned with size of (L1) cache of your CPU
errcode=vdrnguniform( method, stream, n, r, 0.0, 1.0 ) 

! process random numbers

end do
&lt;/PRE&gt;

&lt;P&gt;This blocked approach will help you to improve data locality and sets the base for parallelization. On the other hand, we do not recommend to call Intel MKL RNGs on vector size 1 as in this case you would likely to see degradation of your application, please see the chart available at &lt;A href="https://software.intel.com/sites/products/documentation/doclib/mkl_sa/111/vsl/functions/uniform_cont.htm"&gt;https://software.intel.com/sites/products/documentation/doclib/mkl_sa/111/vsl/functions/uniform_cont.htm.&lt;/A&gt; Depending on type of basic random number generator, it makes sense to set the vector size to&amp;nbsp;at least a few hundred elements.&lt;/P&gt;

&lt;P&gt;Please, let me know, if it answers your question, or you need more details/clarification.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 May 2014 08:54:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011767#M19251</guid>
      <dc:creator>Andrey_N_Intel</dc:creator>
      <dc:date>2014-05-12T08:54:58Z</dc:date>
    </item>
    <item>
      <title>It may help, Marios, to see a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011768#M19252</link>
      <description>&lt;P&gt;It may help, Marios, to see a short example that illustrates the ideas mentioned in this thread.&lt;/P&gt;

&lt;P&gt;The example generates 100 blocks of 100 random numbers each, and computes the mean of the 10,000 random numbers generated.&lt;/P&gt;</description>
      <pubDate>Mon, 12 May 2014 13:23:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011768#M19252</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-05-12T13:23:44Z</dc:date>
    </item>
    <item>
      <title>Dear Andrey,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011769#M19253</link>
      <description>&lt;P&gt;Dear Andrey,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;thanks for your reply. I solved the problem during the weekend doing the following:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;...
do k = 1, mcsweeps
           errcode=vdrnguniform( method, stream, size, r, lb, ub )
     
           do j = 1, NY
           do i = 1, NX
               s = s + r((j-1)*NX+i)
                write(1,*) r((j-1)*NX+i)

           end do
           end do
      end do 

...&lt;/PRE&gt;

&lt;P&gt;where r(NX*NY) the size of the lattice. This way I get random numbers for all the lattice sites and all the mcsweeps (which is&amp;nbsp; Nexperiments in your example) without having to store them in an array of NX*NY*mcsweeps elements.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Actually you suggest the same thing if I understand correctly, right?&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Marios&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 May 2014 17:43:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011769#M19253</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-12T17:43:31Z</dc:date>
    </item>
    <item>
      <title>Hi Marious,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011770#M19254</link>
      <description>&lt;P&gt;Hi Marious,&lt;/P&gt;

&lt;P&gt;yes, I suggest the same approach. However, If NX x NY is big enough, say, has order of million(s), it would make sense to make&amp;nbsp;the generation&amp;nbsp;more granular, that is to generate the same amount&amp;nbsp;of numbers NX x NY in chunks of the smaller size and apply processing to each chunk.&lt;/P&gt;

&lt;P&gt;While I' not aware about all the details of your application, the loop&amp;nbsp;over k&amp;nbsp;appears to be the candidate for parallelization.&amp;nbsp;Do you consider the option to parallelize that loop using OpenMP or other technology? If so, another BRNG such as MT2203 could be used in this case.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 05:27:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011770#M19254</guid>
      <dc:creator>Andrey_N_Intel</dc:creator>
      <dc:date>2014-05-13T05:27:32Z</dc:date>
    </item>
    <item>
      <title>Hi Andrey,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011771#M19255</link>
      <description>&lt;P&gt;Hi Andrey,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;NX*NY is the lattice size so it's not big (less than 100x100). The code above is an example, actually it's more like that:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;do k = 1, mcsweeps
	           errcode=vdrnguniform( method, stream, size, r, lb, ub )
	      
	           do j = 1, NY
	           do i = 1, NX
	        
!                   calculate the spin -flip probability U
                     ......
                      if (r((j-1)*NX+i) &amp;lt; U) S(i,j)=-1.0d0
                      else 
                       S(i,j)=1.0d0
	              end if  
	           end do
	           end do

	      end do


&lt;/PRE&gt;

&lt;P&gt;I am worried about the summation between the candidate spin and it's nearest neighbors in order to parallelize the double loop over NX, NY.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;If I manage it do I have to use another RNG? Doesn't each thread just pick an element of r to do it's job? Or each thread/core needs it's own random number sequence?&lt;/P&gt;

&lt;P&gt;Thanks again,&lt;/P&gt;

&lt;P&gt;Marios&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 06:21:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011771#M19255</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-13T06:21:50Z</dc:date>
    </item>
    <item>
      <title>Hi Marios,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011772#M19256</link>
      <description>&lt;P&gt;Hi Marios,&lt;/P&gt;

&lt;P&gt;If iterations of the outer loop over mcsweeps depend on each other in a simple way (for example, say, you need summation of the results obtained for each iteration k), you could do the blocks of&amp;nbsp;iterations in parallel, calculate an save the intermediate results into additional memory, and then&amp;nbsp; combine them into the final result in the serial part of the function, after the parallel loop is done. Amount of the additional memory is defined by the number of threads used in the code.&lt;/P&gt;

&lt;P&gt;To run parallel Monte Carlo simulations you would need one of MKL basic random number generators suitable for goals of your application.&amp;nbsp;RNGs in Intel MKL&amp;nbsp;support parallel simulations via several techniques such as leap-frog, skip-ahead, and a family of BRNGs;&amp;nbsp;each thread would produce&amp;nbsp; it's own sequence. High level overview of the techniques is available in VSL Training materials at &lt;A href="https://software.intel.com/en-us/articles/intel-mkl-vsl-training-material"&gt;https://software.intel.com/en-us/articles/intel-mkl-vsl-training-material,&lt;/A&gt; slides 9-13. Additional details are available in VSL RNG Notes at &lt;A href="https://software.intel.com/en-us/mkl_11.1_vslnotes"&gt;https://software.intel.com/en-us/mkl_11.1_vslnotes,&lt;/A&gt; section "Random Streams and RNGs in parallel computations"; for each basic random number generator the document describes supported parallelization techniques.&lt;/P&gt;

&lt;P&gt;Please, let me know, if you need more details.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Andrey&lt;/P&gt;</description>
      <pubDate>Tue, 13 May 2014 09:53:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011772#M19256</guid>
      <dc:creator>Andrey_N_Intel</dc:creator>
      <dc:date>2014-05-13T09:53:38Z</dc:date>
    </item>
    <item>
      <title>hello again,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011773#M19257</link>
      <description>&lt;P&gt;hello again,&lt;/P&gt;

&lt;P&gt;I am trying to use the SFMT19937 RNG in a program that I run in a cluster but I found out that the MKL version the cluster has installed has only the mkl_vsl.f77 version not the f90.&lt;/P&gt;

&lt;P&gt;Where can I find documentation on how to generate random numbers using the f77 version of mkl_vsl?&lt;/P&gt;

&lt;P&gt;This is really frustrating...&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 16:35:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011773#M19257</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-27T16:35:28Z</dc:date>
    </item>
    <item>
      <title>Try the following: create a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011774#M19258</link>
      <description>&lt;P&gt;Try the following: create a file containing these lines:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;      module mkl_vsl
      include 'mkl_vsl.f77'
      end module mkl_vsl
&lt;/PRE&gt;

&lt;P&gt;Compile this source file to produce the file mkl_vsl.mod. Then, add "USE mkl_vsl" to your source code from which you wish to callMKL VSL routines.&lt;/P&gt;

&lt;P&gt;Whether this suggestion will work will depend on the version of MKL on your cluster.&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 18:54:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011774#M19258</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-05-27T18:54:00Z</dc:date>
    </item>
    <item>
      <title>I modified the first lines of</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011775#M19259</link>
      <description>&lt;P&gt;I modified the first lines of the code as:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;PROGRAM test

 USE IFPORT
   
IMPLICIT NONE

  include 'mkl_vsl.f77'  
 
...&lt;/PRE&gt;

&lt;P&gt;and it compiled and run correctly &lt;STRONG&gt;on my pc&lt;/STRONG&gt; but when I tried it at the cluster I got:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt; ifort  -O3 -warn all -xSSE4.2 -parallel -par-report1 -openmp -openmp-report1 -vec-report1 -heap-arrays 0 -mkl -o run.out Long2.F90


/opt/intel/Compiler/11.1/072/mkl/include/mkl_vsl.f77(295): error #6404: This name does not have a type, and must have an explicit type.   [VSL_USER_INIT_DIRECTION_NUMBERS]
      PARAMETER (VSL_USER_INIT_DIRECTION_NUMBERS = 2)
-----------------^
Long2.F90(48): error #6457: This derived type name has not been declared.   [VSL_STREAM_STATE]
 TYPE (VSL_STREAM_STATE) :: stream
-------^
Long2.F90(109): error #6404: This name does not have a type, and must have an explicit type.   [VSL_BRNG_SFMT19937]
    brng=VSL_BRNG_SFMT19937
---------^
Long2.F90(110): error #6404: This name does not have a type, and must have an explicit type.   [VSL_RNG_METHOD_UNIFORM_STD]
    method=VSL_RNG_METHOD_UNIFORM_STD
-----------^
Long2.F90(151): error #6404: This name does not have a type, and must have an explicit type.   [STREAM]
    errcode=vslnewstream( stream, brng,  seed1 )   ! new stream for the RNG
--------------------------^
/opt/intel/Compiler/11.1/072/mkl/include/mkl_vsl.f77(201): remark #7712: This variable has not been used.   [VSL_BRNG_SHIFT]
      INTEGER*4 VSL_BRNG_SHIFT
----------------^
&lt;/PRE&gt;

&lt;P&gt;The good news is that this time the linking to mkl_vsl.f77 is done but,&lt;/P&gt;

&lt;P&gt;it seems that&amp;nbsp; the compiler still doesn't "understand" the mkl_vsl.f77&lt;/P&gt;

&lt;P&gt;I still don't understand how it's possible that the cluster's mkl version doesn't have the mkl_vsl.f90. As I see from the first error:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;/opt/intel/Compiler/11.1/072/mkl/include/mkl_vsl.f77(295): error #6404: This name does not have a type, and must have an explicit type.   [VSL_USER_INIT_DIRECTION_NUMBERS]
      PARAMETER (VSL_USER_INIT_DIRECTION_NUMBERS = 2)&lt;/PRE&gt;

&lt;P&gt;the compiler version is 11.1so how old can the mkl version be?&lt;/P&gt;

&lt;P&gt;Any ideas? I am really frustrated with this situation&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 20:55:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011775#M19259</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-27T20:55:00Z</dc:date>
    </item>
    <item>
      <title>hi mecej4,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011776#M19260</link>
      <description>&lt;P&gt;hi mecej4,&lt;/P&gt;

&lt;P&gt;I also tried your suggestion:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;PROGRAM HEATBATH

  USE mkl_vsl
 
IMPLICIT NONE

 ....&lt;/PRE&gt;

&lt;P&gt;I compiled first the file containing the module mkl_vsl&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt; ifort -c -O3  -parallel -par-report1 -mkl filemod.f90&lt;/PRE&gt;

&lt;P&gt;and then:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;ifort ewald.o filemod.o -O3 -warn all -xSSE4.2 -parallel -par-report1 -openmp -openmp-report1 -vec-report1 -heap-arrays 0 -mkl -o run.out Long2.F90
&lt;/PRE&gt;

&lt;P&gt;and I got almost the same as in my comment above:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;Long2.F90(48): error #6457: This derived type name has not been declared.   [VSL_STREAM_STATE]
 TYPE (VSL_STREAM_STATE) :: stream
-------^
Long2.F90(109): error #6404: This name does not have a type, and must have an explicit type.   [VSL_BRNG_SFMT19937]
    brng=VSL_BRNG_SFMT19937
---------^
Long2.F90(110): error #6404: This name does not have a type, and must have an explicit type.   [VSL_RNG_METHOD_UNIFORM_STD]
    method=VSL_RNG_METHOD_UNIFORM_STD
-----------^
Long2.F90(151): error #6404: This name does not have a type, and must have an explicit type.   [STREAM]
    errcode=vslnewstream( stream, brng,  seed1 )   ! new stream for the RNG
--------------------------^
&lt;/PRE&gt;

&lt;P&gt;Any ideas?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 21:02:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011776#M19260</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-27T21:02:20Z</dc:date>
    </item>
    <item>
      <title>I do not see a definition of</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011777#M19261</link>
      <description>&lt;P&gt;I do not see a definition of&amp;nbsp;VSL_STREAM_STATE in mkl_vsl.f77 under IFort 11.1.070-Windows. Same problem with IFort 2011 SP1 on Windows.&lt;/P&gt;

&lt;P&gt;I do see the definition in the version of mkl_vsl.f77 that came with IFort 2013 and later versions.&lt;/P&gt;

&lt;P&gt;I think, therefore, that you need to find out the latest version of MKL available on the cluster and write programs that are compatible with that version, unless you can ask the managers of the cluster to update to a more recent version of MKL.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 21:53:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011777#M19261</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-05-27T21:53:43Z</dc:date>
    </item>
    <item>
      <title>thanks mecej4,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011778#M19262</link>
      <description>&lt;P&gt;thanks mecej4,&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;the cluster uses unix (linux) so I guess the same problem exists there too.&lt;/P&gt;

&lt;P&gt;if that's the case where can I find documentation on how to generate properly random numbers using ifort 11.1.070?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 21:59:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011778#M19262</guid>
      <dc:creator>Marios_G_</dc:creator>
      <dc:date>2014-05-27T21:59:28Z</dc:date>
    </item>
    <item>
      <title>You will need to ascertain</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011779#M19263</link>
      <description>&lt;P&gt;You will need to ascertain the version of MKL on your cluster. It is probably 10.2 Update 7, but I am not sure -- especially if your cluster uses Itanium CPUs.&lt;/P&gt;

&lt;P&gt;You can then search for the MKL documentation on the Intel site, but you may find it hard to locate older documentation. The documentation may be stored on the cluster login nodes or a NFS fileshare. You can also find older manuals at third party sites, such as&amp;nbsp;http://scc.qibebt.cas.cn/docs/compiler/intel/11.1/Intel%20MKL/mklman.pdf&amp;nbsp;.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 22:52:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/random-numbers-with-vdrnguniform/m-p/1011779#M19263</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-05-27T22:52:00Z</dc:date>
    </item>
  </channel>
</rss>

