24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2857  |  回复: 6

lqhcxx

铜虫 (职业作家)

[交流] FORTRAN比MATLAB还慢,怎么回事?已有4人参与

本来嫌MATLAB慢,就把MATLAB转换为FORTRAN,结果FORTRAN比MATLAB还慢,这到底是怎么回事呢?
怎么样把Intel Fortran的速度提上来呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1014511134

专家顾问 (正式写手)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2018-07-03 09:12:43
看看程序是不是哪一点写的有问题,一般情况下,纯计算的情况下,Fortran比matlab快的,有可能Fortran你没有优化代码,matlab你用了矢量化编程。整体来说,Fortran纯计算还是比较快的。
2楼2018-06-28 09:23:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lqhcxx

铜虫 (职业作家)

引用回帖:
2楼: Originally posted by 1014511134 at 2018-06-28 09:23:56
看看程序是不是哪一点写的有问题,一般情况下,纯计算的情况下,Fortran比matlab快的,有可能Fortran你没有优化代码,matlab你用了矢量化编程。整体来说,Fortran纯计算还是比较快的。

没有用矢量化编程。按道理,程序代码更适合于FORTRAN风格,不利于MATLAB(循环多)。真是莫名其妙
3楼2018-06-28 09:41:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

redfenglin

新虫 (正式写手)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2018-07-03 09:12:50
可能转的有问题,而且有没有用并行呢

发自小木虫Android客户端
4楼2018-06-28 09:43:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1014511134

专家顾问 (正式写手)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2018-07-03 09:12:57
如果循环多,如果适合可以用openmp试一下,首先保证代码转换没问题
5楼2018-06-28 09:53:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abacn

新虫 (初入文坛)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2018-07-03 09:13:05
gprof一下看哪部分最耗时,另外用intel的fortran编译器有时比gfortran能快很多

发自小木虫Android客户端
6楼2018-07-02 11:45:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Dgelom

新虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
这肯定是你写的问题 现代Fortran编译器基本上都会自动作向量化处理 本来Fortran本身就对向量化很友好 循环多应该从算法优化 破除多循环的深度依赖 有助于编译器给你优化

发自小木虫IOS客户端
7楼2018-10-11 23:46:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lqhcxx 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见