如果 运行 "inside" 个虚拟机,我们会在 Chapel 中看到预期的加速吗?
Will we see an expected speedup in Chapel if running "inside" VMs?
下学期我将在 Chapel 任教,我们正在考虑使用 VM 代替物理机器让学生进行编程。作为 class 的一部分,我希望学生能够在使用多线程时看到加速。我担心他们看不到这一点,因为虚拟机将使用隐式超线程;一个线程将 运行 与多个线程一样快。
有没有人有这方面的经验?有没有可能我可以使用 VM 而不是物理设备?
是的,但是任何加速都不仅仅是语法构造器的问题,而是问题的可实现的 ( [SEQ], [PAR] )
重新表述:
恕我直言,教授,Amdahl's Law 违背了大多数幼稚的、语法修饰的努力。
Contemporary criticism and re-formulation of the original Dr. Gene AMDAHL's argument 考虑了两个主要扩展:
开销严格公式(不要忘记,从 [SEQ]
到 [PAR]
代码执行是有代价的,总是附加成本,这严重违背了任何预期(实际附加开销成本不可知)加速)
任何[PAR]
执行粒度的主要限制,在有限的原子事务级别,其中任何进一步可用的资源,甚至在无限容量下,由于进一步的不可分调度,不会进一步提高整体速度权"atomicity"
这两个问题将比您的实际 VM 抽象更能主导您的教育工作,并且确实很高兴更详细地讨论来自调度-"blocking"-资源的所有这些影响,而不仅仅是 CPU-核心和硬件线程(O/S 计划在其上),无论是物理的还是由 VM-hypervisor 抽象的。
正如伟大的 CRAY Chapel 团队成员已经多次指出的那样,真正的硬件 NUMA 问题对最终的附加开销有很大的影响,高级制定的语法实际上会注入到真正的平台处理中,所以风景更加荒凉。
虚拟机:
更好地检查 VM-hypervisor 生成的 VM-NUMA 拓扑(hwloc
/ lstopo
)以更好地解码 VM-CPU-Cache 架构,您的 VM-sand-boxes 将享受任何面向硬件的低级{ C |汇编 } 代码,并且可以想象许多 "fooling" 效果,如果 VM 声称 vCPU 有 8 个独立的 vCPU-sockets,每个有 4 个独立的 vCPU-核心,每个核心都有一个完全独立和自治的非共享 vCPU-CACHE(s) 层次结构,none 级别是共享的(尽管事实上,主机的物理 CPU(s) 主要共享 L3_CACHE(s)).
所有这些都误导了任何以硬件为中心的资源优化器的决策(如果虚拟化错过了主机的物理属性,性能永远不会提高)。
( 也可以使用 Live chapel platform at https://tio.run for tweaking and prototyping )
我们在虚拟机上取得了成功!我们用于整个 class 的 VM 有:
- 16 个 CPU
- 一个 60 GB 的硬盘
- 4 GB 内存
- 3 台 ESXI 主机
系统也有 umlimited IOPs。 (Input/Outputs 每秒。)
我向其他老师推荐这个解决方案。
下学期我将在 Chapel 任教,我们正在考虑使用 VM 代替物理机器让学生进行编程。作为 class 的一部分,我希望学生能够在使用多线程时看到加速。我担心他们看不到这一点,因为虚拟机将使用隐式超线程;一个线程将 运行 与多个线程一样快。
有没有人有这方面的经验?有没有可能我可以使用 VM 而不是物理设备?
是的,但是任何加速都不仅仅是语法构造器的问题,而是问题的可实现的 ( [SEQ], [PAR] )
重新表述:
恕我直言,教授,Amdahl's Law 违背了大多数幼稚的、语法修饰的努力。
Contemporary criticism and re-formulation of the original Dr. Gene AMDAHL's argument 考虑了两个主要扩展:
开销严格公式(不要忘记,从
[SEQ]
到[PAR]
代码执行是有代价的,总是附加成本,这严重违背了任何预期(实际附加开销成本不可知)加速)任何
[PAR]
执行粒度的主要限制,在有限的原子事务级别,其中任何进一步可用的资源,甚至在无限容量下,由于进一步的不可分调度,不会进一步提高整体速度权"atomicity"
这两个问题将比您的实际 VM 抽象更能主导您的教育工作,并且确实很高兴更详细地讨论来自调度-"blocking"-资源的所有这些影响,而不仅仅是 CPU-核心和硬件线程(O/S 计划在其上),无论是物理的还是由 VM-hypervisor 抽象的。
正如伟大的 CRAY Chapel 团队成员已经多次指出的那样,真正的硬件 NUMA 问题对最终的附加开销有很大的影响,高级制定的语法实际上会注入到真正的平台处理中,所以风景更加荒凉。
虚拟机:
更好地检查 VM-hypervisor 生成的 VM-NUMA 拓扑(hwloc
/ lstopo
)以更好地解码 VM-CPU-Cache 架构,您的 VM-sand-boxes 将享受任何面向硬件的低级{ C |汇编 } 代码,并且可以想象许多 "fooling" 效果,如果 VM 声称 vCPU 有 8 个独立的 vCPU-sockets,每个有 4 个独立的 vCPU-核心,每个核心都有一个完全独立和自治的非共享 vCPU-CACHE(s) 层次结构,none 级别是共享的(尽管事实上,主机的物理 CPU(s) 主要共享 L3_CACHE(s)).
所有这些都误导了任何以硬件为中心的资源优化器的决策(如果虚拟化错过了主机的物理属性,性能永远不会提高)。
( 也可以使用 Live chapel platform at https://tio.run for tweaking and prototyping )
我们在虚拟机上取得了成功!我们用于整个 class 的 VM 有:
- 16 个 CPU
- 一个 60 GB 的硬盘
- 4 GB 内存
- 3 台 ESXI 主机
系统也有 umlimited IOPs。 (Input/Outputs 每秒。)
我向其他老师推荐这个解决方案。