我想了解什么是并行内存分配。
我想我理解什么是“内存分配”,但我不理解术语“并行”。也许与多个处理器有关?
另外我必须在 C 中实现并行内存分配。有什么推荐的好的网站/页面可以看吗?
答案1
并行内存分配处理在多CPU架构上运行的多线程应用程序中的内存分配问题。与单 CPU 架构相比,我们必须考虑内存共享冲突(锁、缓存失效等)。例如,在不同 CPU 上运行的两个线程一次又一次访问同一高速缓存行可能会经历显着的性能下降,因为 CPU 无法从其本地高速缓存内存中受益,因为它总是被另一个 CPU 失效。
在深入编写自己的例程之前,我建议使用诸如 hoard 之类的嵌入式库(请参阅http://www.hoard.org/),因为由于可能发生许多竞争条件,测试此类例程的稳健性是一项相当复杂的任务。
编辑:
您可以查看以下文档:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- 这也是关于hoard实现的,但它也值得一读,因为它深入解释了很多相关问题。