※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Soft_Job
標題

Re: [討論] 多線程軟件設計用書

留言28則留言,16人參與討論
推噓12 ( 13114 )
※ 引述《musashi023 (太陽魚)》之銘言: : 嗨蓋斯 : 最近下班在研究Qt multithreading, 對於把CPU性能榨乾覺得蠻有成就感的 : 就搞了一本 C++ Concurrency in Action 來翻翻 除非特別需要,不要自己打造輪子。現在最普及使用的是OpenMP,資源多,會的人也多。 https://www.openmp.org/resources/openmp-books/ 都是好書可以讀。尤其"High Performance Parallel Runtimes"可以讓你了解基礎,也知道parallel programming is HARD。 我自己喜歡的是Intel TBB(Threading Building Blocks),語法比較適合我的用法。 Intel ISPC也是我喜歡的東東,不過這就有點偏門了。 : 前陣子面試 : 剛剛好跟他們主管聊到,怎麼讓多線程上鎖的成本最小化,覺得蠻酷的 : 雖然明白這本來就是多線程程序設計的重點 : 想知道有沒有專門在聊這個的書 上鎖就輸了,如果你的鎖複雜,更容易出錯。 如何重新解構資料結構去避開鎖,如何排列記憶體是Parallel Programming的重點。false sharing,很常碰到,data thrashing也是頭痛問題。 以上都是shared-memory model的問題,但要最高效能無法避免的。 這也是為什麼Erlang, goLang,這種message passing盡量避開shared-memory的問題,流行起來。Recommended。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.70.128.119 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1704324226.A.754.html

Re: 回文串

1228
> Re: [討論] 多線程軟件設計用書
Soft_Job01/04 07:23

28 則留言

nicetw20xx, 1F
先謝謝大大分享~~~~~

devilkool, 2F

Hsins, 3F
推!

NCTU5566, 4F
謝謝哥

hobnob, 5F
推分享!

final01, 6F
哥的觀念有點問題...必須等高人指出問題XD

a82611141, 7F
推 tbb

haydou, 8F

WTS2accuracy, 9F
有請造輪子大師開示

Suleika, 10F
share memory by communicating/serializability

paul123, 11F
推 Intel tbb

Litfal, 12F
真的,上鎖就先輸一半,parallelism有很大一部分都在想怎

Litfal, 13F
麼省鎖

netburst, 14F

labbat, 15F
初學者先鎖再說啊,會鎖懂鎖知道哪些api隱含鎖才可以避鎖

oopFoo, 16F
現在都流行GC/Ref Count語言,管理記憶體很難。Lock一樣

oopFoo, 17F
很難做的對。先學會如何Partition Tasks才重要,然後JS的

oopFoo, 18F
Atomics類的api設計,直接lock真的太低階也太容易出錯。

oopFoo, 19F
Lock出錯,超難debug,超挫折的。需要很系統很有耐性處理

oopFoo, 20F
Lock就交給專家吧。真喜歡Concurrency,先試試OpenMPI這種

oopFoo, 21F
Message Passing的API也是很好的選擇

leviliang, 22F
印象中OpenMP針對單一節點多核心的平行化

leviliang, 23F
而MPI針對多節點資料的傳遞與平行化計算

leviliang, 24F
兩者使用的地方不一樣

leviliang, 25F
雖可以混成 hybrid parallelization

leviliang, 26F
但還是別搞混了

oopFoo, 27F
OpenMP是shared-memory所以只能一個節點。OpenMPI是Msg

oopFoo, 28F
Passing。所以各種情況都可用,單節點多核心也適合。

oopFoo 作者的近期文章

Re: [討論] Google開發工具工程總監:Rust 開發者的
※ 引述《Lushen (pttlushen)》之銘言: : Google開發工具工程總監:Rust 開發者的生產力是 C++ 的兩倍 : https://bit.ly/3JASfNe 另外一個相反的例子。 https://loglog.g
更多 oopFoo 作者的文章...