为什么当我增加 EC2 vCPU 时计算速度没有加快?

问题描述 投票:0回答:1

我必须在 MATLAB 上运行无法优化的代码,因此我必须提高计算能力。该代码已经使用并行处理。 我已经在 AWS 上的 ubuntu 和 Windows 上安装了 MATLAB,并且同时在我的 Mac 上进行测试。无论我在 AWS 上增加多少 vCPU 数量,性能(即代码执行时间)都不会发生有意义的变化。 2 个 vCPU 和 36 个 vCPU 之间存在差异,但 EC2 和我的配备 Apple M2 芯片(可能是 8 核)的 mac 之间没有太大区别。

所以我的问题是

  1. 为什么我没有从 AWS 上的那么多核心获得更高的性能?
  2. 如何估计减少计算时间所需的计算能力?

我在 16 核的 Mac 上尝试过,计算时间减少了,但对于我来说,这些信息不足以计算我需要的设备/服务器的规格。 在 AWS 上,我尝试了 c4.8xlarge (ubuntu) 和 c6a.48xlarge (windows)。对于 ubuntu,我从终端运行 MATLAB,没有显示。

我正在使用 HCTSA 工具箱,并且根据他们在教程中提供的示例数据集进行计时,可以访问此处

TS_Init('INP_Bonn_EEG.mat'); %prepares the input for the main function
TS_Compute(true, 1:10);
performance matlab amazon-ec2 parallel-processing vcpu
1个回答
0
投票

第一个问题:
“为什么我没有从 AWS 上的那么多核心获得更高的性能?”

因为处理性能的任何和所有变化(无论是增加还是减少)主要取决于:

(a) 是 - 增加资源(添加 vCPU,在非共享形式的真实进程专用 CPU 中效果更好)

(b) 但还增加了(目前为止尚未出现)开销(无论是一项新工作,还是将部分工作“交付”给“新”资源 - 例如 IPC 的 SER / DES - 以及相同的情况)从“远程”资源收集结果的“返回”方式会降低缓存命中/未命中统计数据的效率,降低从存储中检索数据的速度(缓存中的数据会被“其他”更快地逐出) ” 核心,在 (a) 之前不工作,将“它们的”数据块放入共享缓存中,因此您的“第一个”CPU 核心必须再次从 RAM 中重新获取一次预取的数据块(支付 10 倍~比从(现已被驱逐的)核心/CPU 存储位置缓存中获取数据的时间多 100 倍)

Q2 :
“如何估算减少计算时间所需的计算能力?”

修订后的阿姆达尔定律给出了定量精确的公式。您将获得添加更多资源对最终计算时间的确切影响 - 详细信息在这里,应用程序(甚至使用阿姆达尔论证的交互式图形模拟器)在这里

交互式模拟器链接到这张图片 - 所以请随意点击使用它: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.