雖然我試圖提高非NUMA /標準PC上應用程序的速度,但我始終發現,瓶頸是對malloc()
的呼籲,因爲即使在多核計算機中,它也是在所有核心之間共享/同步的。做malloc/memcpy函數在NUMA上獨立運行嗎?
我有使用Linux和C和NUMA架構提供一臺PC,我有兩個問題:
- 在NUMA機器,因爲每個核心都設置有其自己的內存,將
malloc()
每個核心獨立執行/內存沒有阻塞其他內核? - 在這些體系結構中,如何調用
memcpy()
?這可以在每個內核上獨立調用,或者一旦內核阻塞其他內核,就可以調用它。我可能錯了,但我記得memcpy()
也得到了malloc()
的同樣的問題,即當一個內核正在使用它時,其他人必須等待。
嗨,布賴恩。非常感謝。你知道任何NUMA知道的malloc庫嗎?我搜索了一下,我發現MPC ...在你看來這很好嗎? – 2011-03-29 17:04:36
在我寫作NUMA知道的東西的罕見時候,我使用VirtualAllocExNuma(Windows)或libnuma(linux)直接從操作系統分配內存。 – Brian 2011-03-30 03:11:25
非常感謝,我會試一試。 – 2011-03-30 14:20:39