【问题标题】:Running r models on AWS - do multiple vCPUs function like a multicore system?在 AWS 上运行 r 模型 - 多个 vCPU 是否像多核系统一样运行?
【发布时间】:2017-01-18 02:23:01
【问题描述】:

我在 r 包 'secr' 中运行模型。最简单的模型需要几天才能在 4G macbook 上完成,我已经在模型设置中尽一切可能减少运行时间。并行(多核)处理在 secr 中是可能且直接的,但好处是微乎其微的,而且运行时间实际上可能会增加。如果我切换到云中的高性能虚拟机(例如具有 16 个 RAM 和 4 个 vCPU 的 AWS 的 EC2),或者 EC2 的四个 vCPU 像多核系统一样运行(在这种情况下,我尽管有 4 个 vCPU,但只能从一个 vCPU 中受益?

我在几个不同的论坛上问过这个问题,得到的答案相互矛盾。

【问题讨论】:

    标签: r amazon-web-services amazon-ec2 parallel-processing


    【解决方案1】:

    您可以将 vCPU 视为多核系统。对于系统上运行的任何软件,它们都会显示为多个内核。

    【讨论】:

      【解决方案2】:

      好问题。这取决于。如果您切换到具有更好虚拟硬件规格的 EC2 实例类型,您可能会看到运行时的改进。 AWS 运行 Xen 虚拟机管理程序的自定义版本,并且正如您所指出的,您将获得 vCPU。性能将取决于其他客人工作负载的可变性。如果 vCPU 都分配给实例,并且每个实例都运行 CPU 繁重的工作负载,那么您将看到性能下降的趋势。这取决于在管理程序上运行的所有实例的使用模式。 Citrix 的这篇文章解释了在 Xen 上的实例之间平衡 vCPU 时间的一些细微差别,以及性能为何会有所不同:

      Citrix on Xen vCPU Performance

      实例类型很重要,不仅仅是 vCPU 和 RAM。避免使用 T2 实例,因为它们是“突发的”并且 CPU 性能肯定会有所不同。 AWS 的这篇文章建议尝试使用 M4 实例类型与 R 进行并行化:

      Running R on AWS

      对于特定类型的 EC2 实例,您可以控制 C 状态(内核空闲时可以进入的睡眠级别)和 P 状态(内核所需的频率性能)。这将允许您针对工作负载调整实例性能。以下链接详细解释了哪些实例类型允许 C-State 和 P-State 控制,并向您展示如何使用实用程序“stress”来基准测试和调整不同的配置。

      EC2: Processor State Control

      最好在您第一次配置实例时设计一个测试以查看其类型是否满足您的性能要求,然后稍后再次运行测试以查看性能基准是否成立。

      【讨论】:

      • “避免使用 T2 实例,因为它们是‘突发的’,CPU 性能肯定会有所不同。” 不完全是。 t2 机器有 100% 的可用内核,只要您没有用完 CPU 积分(在 CloudWatch 中可见)。 Burstable 并不意味着您所暗示的意义上的可变或不可预测。它不是“尽力而为”或共享核心平台。 Burstable 意味着您不能以 24/7 全天候 100% 运行核心,因为您将耗尽您的积分,而不是获得积分 - 只有这样,速度才会受到限制。相比之下,t1 变化很大,而且很糟糕。
      • 对 T2 实例类型进行了很好的说明。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多