作者noguest (guest)
看板Programming
标题Re: [问题] 追求效能下,在Do Loop下用IF叙述?
时间Wed Mar 12 10:37:23 2008
※ 引述《OASYS (打倒万恶ETS)》之铭言:
: 演算法的部份,小弟已经尽量优化了,有时觉得要写科学计算程式不若写商用软体
: 程式码已经快精简到像密码一样只有我看得懂...(可能过一两个月连我也要想半天
: 才会看得懂..XD),小弟尚有平行化处理..甚至把程式放到Ramdisk跑都用上了...
: 为了快一点什麽都做得出来..@@
: 不知道有没有类似的资讯,书或网页告诉程式设计师写程式的一些观念...
: 如同样功能的程式用不同的写法之差别...
: 再次感谢各位大大的解答..
如果演算法方面已经优化的差不多的话,可以从 compiler 的参数下手。假如
你的程式还没有使用 profiling 来最佳化,一定要先试这部份。根据经验,
最好的情况是可以让执行速度快 30%,当然 profiling 对不同的程式和不同的
平台的帮助不一定,但一般对越复杂且计算越多的程式帮助比较大。用 profiling
可以明显看到对 branch prediction 和 CPI 有帮助。
icc 的话,profiling 的 flag 是 -prof_gen, -prof_use, 和 -prof_dir,其
他的 compiler 大多也有类似的 flag。要注意一点就是用来产生 feedback
的 workload,越接近实际要跑的计算对效率帮助越大,跑个半小时到一小时就
够了,收集到的资料已够让 compiler 做很多的最佳化。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 64.9.238.248