我正在做一个项目,我们需要更多的性能。随着时间的推移,我们继续改进设计以更多地并行工作(线程和分布式)。然后最新的步骤是将其中的一部分移到具有 16 个内核的新机器上。我发现我们需要重新考虑如何在共享内存模型中扩展至那么多内核。例如,标准内存分配器不够好。
人们会推荐什么资源?
到目前为止,我发现 Sutter 的专栏 Dr. Dobbs 是一个好的开始。
我刚拿到多处理器编程的艺术和关于英特尔线程构建 block 的 O'Reilly 书
请您参考如下方法:
其他几本书会有所帮助:
此外,考虑减少对并发进程之间共享状态的依赖。如果你能避免它,你会扩展得更好,因为你将能够分出独立的工作单元,而不必在它们之间进行尽可能多的同步。
即使您需要共享某些状态,请查看是否可以将共享状态与实际处理分开。这将使您能够并行执行尽可能多的处理,独立于将已完成的工作单元集成回共享状态。显然,如果您在工作单元之间存在依赖关系,这将不起作用,但值得研究而不是仅仅假设状态总是会被共享。




