使用rand()提高性能

时间:2019-04-23 16:03:01

标签: julia montecarlo

我正在运行Ising模型的Monte Carlo模拟。总体而言,该代码非常有效。下面的函数被调用大约一千万次:

function stepFlip(sim::Ising)
    i = rand(1:sim.n)
    j = rand(1:sim.n)

    dE = dEnergy(i, j, sim)

    if dE < 0 || rand() < exp(-dE/sim.T)
        sim.spins[i,j] *= -1
    end
end

我是否有一种方法可以优化随机数生成,这需要花费大量执行时间?我知道预先生成所有这些文件并在我调用stepFlip时读取它们可能会更快,但是如果我的目标是性能,那么此时分配所有内存是否值得?

0 个答案:

没有答案