【问题标题】:How R's parallel package would handle 12th Gen Efficiency Cores? [closed]R\ 的并行包将如何处理第 12 代效率核心? [关闭]
【发布时间】:2022-08-19 00:01:03
【问题描述】:

我打算用 i7-12700 构建桌面,我主要需要它来处理高 CPU 使用率的 R 任务,并且大多数时候并行处理会发挥作用。 但我想知道第 12 代英特尔处理器中的新效率核心如何处理这项任务。我不是硬件/架构方面的专家,所以这个问题可能听起来很愚蠢,但我的担忧如下。

  1. 假设我有一个任务要拆分到 8 个内核上,我如何确保该任务将在性能内核上运行,或者这是否由操作系统自动处理?
  2. 一般而言,对于其他 CPU,我通常设置 mc.cores = 机器上的内核数,这是正确的方法还是应该将线程数放在那里?

    所以基本上可能会有一个问题,选择新的第 12 代 CPU,效率内核超过第 11 代 CPU,比如 i7-12700 而不是 i7-11700?

  • 您将使用什么操作系统?
  • Linux,特别是 Ubuntu。

标签: r parallel-processing doparallel


【解决方案1】:

处理器亲和性

根据您的操作系统,您可以告诉操作系统不要为某些进程使用(或取消优先级)某些内核。这通常称为处理器亲和性。 Here is some discussion of why you might (not) want to do this. parallelappears to have a built-in function to do this directly from R,虽然 beware incorrect indexing of the cores

视窗

您可以使用处理器关联选项将特定进程分配给 Windows 中的特定内核。 Here's an example of how to do this

苹果

Here's basically the same question for Apple operating systems.

Linux

没有这方面的经验,但here's discussion of how to do it

核心/线程数

在这种情况下,“应该”是非常主观的,因此最好在问题中避免。但是,我会试一试:在许多情况下,“应该”被“不能”排除在多线程方面。我推荐reading this 讨论多线程和多处理以及如何进行(在R 中)。请注意,与此无关,许多人建议至少指定比个人计算机上的内核总数少 1 个内核,以避免在 R 运行时可能会崩溃或完成其他工作的能力大幅下降。

【讨论】:

  • 那么在没有明确设置亲和力的情况下,任何并行进程都会随机分配在性能核心和效率核心上吗?假设当时所有核心都是空闲的
  • 不,这取决于许多因素。核心是否“免费”也不是二元的。如果您真的想了解调度的工作原理,最好的起点是阅读 R 中所有并行处理包的所有文档或拿起教科书:amazon.com/dp/3319265784
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
相关资源
最近更新 更多