【发布时间】:2020-06-17 07:45:44
【问题描述】:
我想在每个处理器上执行功能。
OS X 是否有类似 linux 中的on_each_cpu() 的内核函数?
【问题讨论】:
-
如果您只是在寻找一些常见的 Linux 和 macOS 解决方案,我可能会考虑OpenMP。但是,在 macOS 中,我们通常会从这个级别的细节中抽象出来,例如像
concurrentPerform这样的例程非常适合跨所有可用内核并行化例程,而不会冒线程爆炸的风险。也许您可以告诉我们您真正想要解决的更广泛的问题,我们或许可以为您提供更好的建议。 -
@Rob:问题不在于用户空间应用程序的功能,而在于操作系统内核。在 Linux 内核中,
on_each_cpu不用于加速计算,而是用于所有 CPU 的整合状态。例如,用于更新 per-CPU 变量。我猜提问者希望该功能用于类似目的,但在 OS X 内核中。 -
我不知道有任何此类功能,当然不是公共 KPI(可由 3rd 方 kexts 使用)。也许您可以解释一下您要做什么,我们可以尝试找到不同的解决方案?