作者running1125 (running)
看板Soft_Job
標題Re: [討論] 多線程軟件設計用書
時間Thu Jan 11 18:30:23 2024
前輩好
感謝大神無私地分享,
想藉討論串問一下,
有人Python 有相關書籍嗎?
openMP似乎python 沒有套件
目前查到的multiprocess 跟 multithread 都是網路上的文章
我是想找比較專業的書籍,什麼語言都可以
目前只有找到
https://reurl.cc/130yZQ
想問一下各位大大有讀過嗎?
是否值得購買?
謝謝
※ 引述《oopFoo (3d)》之銘言:
: ※ 引述《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), 來自: 220.128.216.143 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1704969025.A.866.html
※ 編輯: running1125 (220.128.216.143 臺灣), 01/11/2024 18:33:21
推 encorek22554: python看官方文件和幾篇教學文就差不多了吧,沒什 01/11 18:37
→ encorek22554: 麼特別訣竅或眉角 01/11 18:37
→ celestialgod: Python有GIL 沒辦法直接用OpenMP 01/11 19:07
→ celestialgod: 但是你可以寫Cython release GIL + OpenMP 01/11 19:07
→ celestialgod: Python太多人用了 應該不缺這塊資源 01/11 19:07
推 Kroner: 關節痛這種東西靠UC2就對了 01/12 01:44推 soheadsome: CUDA Python 比較潮 01/11 20:29
推 oopFoo: OpenMP是shared-memory,Python就算沒GIL也不太適合。 01/11 22:08
→ oopFoo: Python比較適合的是MPI,Message Passing。這是有標準的 01/11 22:10
→ oopFoo: Python有mpi4py,類似mpich/openmpi。 01/11 22:13
推 Kroner: 看到有人提到關節痛,我就想到有一篇UC2推薦的文章 01/11 22:13 推 oopFoo: 沒接觸Python Async,不過Async應該就是non-blocking的 01/11 22:20
→ oopFoo: 語法,背後可以是Multithread。比較像是古早win 3.1的 01/11 22:22
→ oopFoo: cooperative multitasking。有它的好處,如果真想寫Python 01/11 22:23
→ oopFoo: 的Parallel Program,應該還是走MPI這個方向。MPI的書很多 01/11 22:24
推 Kroner: 吃過關節保健品,都沒什麼效果,有推薦的牌子嗎? 01/11 22:24 推 oopFoo: 學會觀念,就可以套用在mpi4py。mpi4py.futures也有提供 01/11 22:28
→ oopFoo: 的功能。 01/11 22:28
推 oopFoo: "The Art of HPC" vol 2有講到mpi4py還有該注意的地方。 01/11 22:36
→ oopFoo: CC-BY 4.0 license.所以可以去下載來研讀。 01/11 22:36
推 Kroner: 剛開始吃UC2,期待 01/11 22:36 → Lordaeron: parallel problem 不是case by case 的? 怎麼有一統 01/12 00:08
→ Lordaeron: 天下的產品? 這麼神奇... 01/12 00:08
→ zerof: Cpython 01/12 01:44
→ zerof: 打錯ㄌ是 Cython 01/12 01:44
推 Chricey: UC2神招啊,吃下去就對了 01/12 01:44