快速创建随机数组

时间:2013-11-07 04:49:19

标签: c performance parallel-processing vectorization blas

我有一个for循环:

for (i=0; i<N; i++) a[i] = rand()

但这太慢了,BLAS / vDSP / vecLib /等可供我使用。我正在寻找一个函数来创建一个随机数组;它似乎应该被包括在内。

除了这个函数的名称,我还要感谢一些好的vDSP / vecLib / etc文档。我找到了some documentation,但这并不好 - 只是函数的一般描述。

2 个答案:

答案 0 :(得分:1)

dlarnv执行您所描述的内容。它使用随机(均匀或正常)值填充double数组,并包含在vecLib中。

答案 1 :(得分:0)

快速且分布均匀的随机数生成器可用于多种用途,因此我相信你可以找到一些很棒的。我首先看一下Mersenne Twister,以及针对SIMD优化的特定实现,例如this

速度的下一步将来自基于GPU或DSP的算法,但我目前还不知道公共领域中的任何算法。