2010-05-04 20 views
2

我有一個程序可以反覆使用cholesky分解來解決大系統的線性方程組。表徵是我有時需要存儲可能超過大約20 GB內存的完整因式分解。因數分解發生在我所稱的圖書館內部。此外,這個矩陣和所得到的因式分解非常頻繁地改變,並且因此存儲器要求也是如此。在Linux啓動之前預先分配一個程序的內存

我不是唯一使用此計算節點的人。因此,有沒有辦法在Linux下啓動程序併爲進程預分配空閒內存?

喜歡的東西:$: prealloc -m 25G ./program

回答

0

我會堅持我的脖子,說,我不認爲有Linux下這樣的方式。我認爲Linux的理念(以及我曾經使用或聽說過的其他多任務操作系統)的目的是爲程序員(和程序)提供一種錯覺,即他們有整個計算機的內存可供玩耍並且使程序員很難干涉o/s。我認爲你應該計劃修改你的程序以獲取它啓動時(或可能)需要的內存,也就是說,無論你選擇什麼語言,都要自己進行內存管理。考慮打電話給圖書館,這可能對你來說有多容易,我不知道。

+0

不,不幸的是這不是一個選項。無論如何,感謝你的努力。 – Fyg 2010-05-23 14:52:15

0

我從來沒有聽說過這樣的方式。如果一個程序繼續並佔用所有可用內存,通常對節點上的其他用戶不利。這不是一個好習慣。

但是,除了意見之外,我可能會以這樣的方式編寫我的程序,使其像一個小型環境一樣,可以使問題的多次運行無需結束。它會在啓動時分配大量內存,然後等待用戶命令(通過最小的shell),並使用分配的內存池來請求運行。它會保持到游泳池直到用戶請求終止。

當然,這需要您在節點上進行交互式會話,您可能沒有這個交互式會話。

相關問題