小编cgx*_*cgx的帖子

Matlab 与 Julia 与 Fortran 中的速度

我正在使用不同的语言来解决一个简单的值函数迭代问题,在该问题中我循环遍历状态空间网格。我试图了解性能差异以及如何调整每个代码。为了后代,我在下面发布了每种语言的完整工作示例。但是,我相信大部分调整都是在while循环中完成的。我有点困惑我在 Fortran 中做错了什么,因为速度似乎低于标准。

Matlab ~2.7secs :暂时避免使用该repmat函数的更有效的解决方案,以保持代码的可比性。代码似乎自动多线程到 4 个线程

beta = 0.98;
sigma = 0.5;
R = 1/beta;

a_grid = linspace(0,100,1001);
tic
[V_mat, next_mat] = valfun(beta, sigma, R ,a_grid);
toc
Run Code Online (Sandbox Code Playgroud)

凡 valfun()

function [V_mat, next_mat] = valfun(beta, sigma, R, a_grid)
    zeta = 1-1/sigma;
    len = length(a_grid);
    V_mat = zeros(2,len);
    next_mat = zeros(2,len);

    u = zeros(2,len,len);
    c = zeros(2,len,len);

    for i = 1:len
        c(1,:,i) = a_grid(i) - a_grid/R + 20.0;
        c(2,:,i) = a_grid(i) - a_grid/R; …
Run Code Online (Sandbox Code Playgroud)

matlab fortran julia

10
推荐指数
1
解决办法
1380
查看次数

标签 统计

fortran ×1

julia ×1

matlab ×1