24小时热门版块排行榜    

查看: 1117  |  回复: 5

jjjx_zq

银虫 (小有名气)

[求助] 编写C/C++程序为了提高计算效率应该注意什么细节? 已有2人参与

如题,做波动方程模拟的,将matlab下的程序改写成了C,本来想提高计算效率,但是没想到反而更慢一些。然后有写成C++试了一下,发现更慢了。。。。
所有的函数过程比较简单,因此都是自己写的。到底C怎么才能提高计算效率呀?求大神指点。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brucefan

专家顾问 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjjx_zq: 金币+10 2016-06-09 20:17:42
如果有矩阵求逆或者求本征值之类的计算,c确实很难比matlab快,因为matlab用了非常高效的库。但其它普通计算c应该要快几倍到几十倍。

[ 发自手机版 http://muchong.com/3g ]
2楼2016-06-08 01:56:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

用C写也要调用BLAS才容易快

发自小木虫IOS客户端
3楼2016-06-08 05:20:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijf517

木虫 (小有名气)

有时不一定是语言本身的问题,可能是你代码写得不够好。你对代码的运行时间做个分析,看一下最耗时的都是那些函数,然后再仔细分析函数中可能影响效率的语句。我曾经把一个别人写的matlab程序改成了c++程序并对算法做了优化,最终效率提高了十倍

发自小木虫Android客户端
4楼2016-06-08 05:49:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hans1234

新虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjjx_zq: 金币+10 2016-06-09 20:17:30
会不会编译的时候没打开优化选项 /O2
5楼2016-06-08 21:57:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mdl9966

铁虫 (初入文坛)

如果你的算法足够好的话
考虑一下编译器的问题 优化问题
或者考虑 用显卡CUDA算,比如PGI OPENACC
6楼2016-06-10 14:36:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jjjx_zq 的主题更新
信息提示
请填处理意见