【发布时间】:2011-07-25 04:02:49
【问题描述】:
在尝试提高我的应用程序在非 NUMA/标准 PC 上的速度时,我总是发现瓶颈是对 malloc() 的调用,因为即使在多核机器中,它也是在所有内核之间共享/同步的。
我有一台使用 Linux 和 C 的 NUMA 架构的 PC,我有两个问题:
- 在 NUMA 机器中,由于每个内核都有自己的内存,
malloc()是否会在每个内核/内存上独立执行而不会阻塞其他内核? - 在这些架构中,如何调用
memcpy()?可以在每个核心上独立调用它,还是在一个核心中调用它会阻塞其他核心?我可能错了,但我记得memcpy()也遇到了与malloc()相同的问题,即当一个核心正在使用它时,其他核心必须等待。
【问题讨论】:
标签: c memory malloc memcpy numa