[請益] 記憶體問題該如何突破?

看板Soft_Job (軟體人)作者 (砝碼)時間10年前 (2015/09/30 07:57), 10年前編輯推噓6(6026)
留言32則, 13人參與, 最新討論串1/1
因為在計算上會需要用到很大的記憶體 但是發現自己電腦的8G ram 常常沒跑滿 大概都跑到5G左右就會出現 memory error 現在是用python 3.4 32位元 如果改成64位元版本似乎能夠用上更多記憶體? 但是查了一下發現有些python的library只有32位元版本 請問各位前輩 如果在這種情況下 我雖安裝了python 64位元版 但是我的library卻參雜32位元版 我能用的記憶體天花板是不是就是32位元版的 而不是64位元 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.173.173 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1443571057.A.336.html ※ 編輯: famayo (59.127.173.173), 09/30/2015 08:01:14

09/30 09:21, , 1F
有錢好任性
09/30 09:21, 1F

09/30 09:57, , 2F
笑了...
09/30 09:57, 2F

09/30 10:08, , 3F
你系統不跑 python 時要吃多少啊@@? 要留點活路給別人啊...
09/30 10:08, 3F

09/30 10:19, , 4F
原本系統吃4G 跑python時整個電腦的RAM會吃到5G
09/30 10:19, 4F

09/30 10:44, , 5F
是不是要考慮調整你的程式碼,怎麽會用那麼多
09/30 10:44, 5F

09/30 10:45, , 6F
你載入很多影響
09/30 10:45, 6F

09/30 10:49, , 7F
主要是要把1gb的數據全部載入numpy array跟pandas array
09/30 10:49, 7F

09/30 10:49, , 8F
然後作一些計算轉換 常常就卡在陣列變換或讀取的地方
09/30 10:49, 8F

09/30 11:12, , 9F
差16g ram
09/30 11:12, 9F

09/30 12:12, , 10F
所以看起來你的 limit 是 2G 啊
09/30 12:12, 10F

09/30 12:27, , 11F
還有fragmentation的問題
09/30 12:27, 11F

09/30 13:24, , 12F
一定要一次讀1GB出來嗎?
09/30 13:24, 12F

09/30 14:12, , 13F
為啥不考慮平行處理
09/30 14:12, 13F

09/30 15:09, , 14F
平行處理和記憶體限制的關聯在哪
09/30 15:09, 14F

09/30 15:26, , 15F
32bit程式單一程序記憶體使用的上限就是4GB, 但因為
09/30 15:26, 15F

09/30 15:26, , 16F
這4GB還要切割2GB kernel mode 給OS使用,你 user mo
09/30 15:26, 16F

09/30 15:26, , 17F
de 的記憶體只剩下2GB,而且你用array在操作是privat
09/30 15:26, 17F

09/30 15:26, , 18F
e bytes,無法被swap,很快就遇到天險了...
09/30 15:26, 18F

09/30 17:15, , 19F
說錯, 平行處理(x)應該是分散運算才對
09/30 17:15, 19F

09/30 17:37, , 20F
關於平行的技術都還沒點QQ 想說如果可以用64bit先解最好
09/30 17:37, 20F

09/30 17:38, , 21F
所以如果我中間有一個library是32bit 即使其他事64bit
09/30 17:38, 21F

09/30 17:39, , 22F
這樣也等於只能用到2G的極限嗎?
09/30 17:39, 22F

09/30 17:39, , 23F
如果不平行 一定要一次讀 因為這是off-line learning
09/30 17:39, 23F

09/30 17:46, , 24F
是的,一個32bit的老鼠屎就會壞了整鍋粥
09/30 17:46, 24F

09/30 17:47, , 25F
感謝大大解惑啊 我來開始裝64bit
09/30 17:47, 25F

09/30 17:51, , 26F
想想64bit的程式要傳遞一個參數指標到32bit lib 內
09/30 17:51, 26F

09/30 17:51, , 27F
的function, 但這個lib吃不下來怎麼辦?當然只能降
09/30 17:51, 27F

09/30 17:51, , 28F
等用兩邊都能解讀的記憶體指標
09/30 17:51, 28F

09/30 18:06, , 29F
8G不夠換16G再不夠換32G再不夠分散式運算
09/30 18:06, 29F

09/30 21:01, , 30F
適當的 sampling 來減少資量啊qq
09/30 21:01, 30F

10/01 21:10, , 31F
運算龐大成這樣還用python你新手?
10/01 21:10, 31F

10/02 03:17, , 32F
換64bit後已可執行
10/02 03:17, 32F
文章代碼(AID): #1M2oLnCs (Soft_Job)
文章代碼(AID): #1M2oLnCs (Soft_Job)