如果我有一个带有2个CPU的多处理器,并且我在CPU 1上运行了一个进程,而在CPU 2上运行了另一个进程,那么它们之间是否使用了boost :: interprocess共享内存?如果是这样,那是如何实施的?我在boost docs中找不到任何关于它的文档
答案 0 :(得分:1)
它不是增强的优势,而是平台。 Boost在操作系统级别使用shmem或memory mapped files支持。
答案 1 :(得分:1)
是的,如果您使用的是SMP或标准NUMA系统。
如果你的某些CPU在子板或类似物上运行,可能不会。
操作系统和底层硬件平台(您还没有告诉我们)控制这一点,如果您还没有,您应该可以在适当的论坛中询问特定于该操作系统/平台的问题肯定的。
如果你不确定上述两种情况中的哪一种是相关的,那么几乎可以肯定你是在一个通用平台上,它一切都会起作用。请注意,如果要选择分配哪些节点页,Boost可能不会公开NUMA亲和力控制。