[問題] 使用 Python 進行平行運算的 RAM 使用量

作者: Neisseria (Neisseria)   2016-04-14 13:40:37
最近小弟在跑一些耗時的運算,會重覆多次類似的運算
本來很單純地依序跑,跑完一次運算後,把結果用 print 輸出
記憶體用量穩定地在 400 到 500 MB 左右
但是,程式執行蠻久的
後來想到用平行運算來縮短運算時間
試了 pp 和 dipsy,發現記憶體會慢慢膨脹,到十幾 GB,而且還持續增加
後來覺得怪怪的,就把程式 kill 掉
附上程式碼,保留和平行運算相關的部分
https://pastebin.com/ARpXfcww
小弟沒什麼平行運算的經驗
不太知道這些平行運算模組的原理
只是臨時有需要,試著拉幾個模組做運算
不是很確定記憶體膨脹的原因
想請各位大大建議比較好的模式
不會記憶體一直膨脹,又可以同時運算多次
感恩
作者: IKAFIRE (沒有)   2016-04-14 14:09:00
貼個程式碼比較好判斷問題出在哪
作者: gozule (好冷啊~~)   2016-04-15 19:28:00
程式是不是在執行中會寫入東西到記憶體當中? 沒記錯的話這種情形應該是process的copy on write,所以本來是共用的記憶體,寫入會複製好幾份,造成記憶體用光的情形

Links booklink

Contact Us: admin [ a t ] ucptt.com