Re: [問題] 追求效能下,在Do Loop下用IF敘述?

看板Programming作者 (guest)時間17年前 (2008/03/12 10:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/10 (看更多)
※ 引述《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
文章代碼(AID): #17rq7aeY (Programming)
討論串 (同標題文章)
文章代碼(AID): #17rq7aeY (Programming)