如果在“内部”VM中运行,我们是否会看到Chapel的预期加速?

时间:2017-12-11 21:31:54

标签: multithreading virtual-machine chapel parallelism-amdahl

我下个学期在Chapel教学,我们正在考虑使用VM来让学生编程而不是物理机器。作为课程的一部分,我希望学生在使用多个线程时能够看到加速。我担心他们将无法看到这一点,因为虚拟机将采用隐式超线程行动;一个线程的运行速度与许多线程一样快。

有没有人有这方面的经验?我有可能使用VM而不是物理设备吗?

2 个答案:

答案 0 :(得分:1)

我们在虚拟机上取得了成功!我们用于整个课程的VM具有:

  • 16个CPU
  • 60 GB硬盘
  • 4 GB RAM
  • 3个ESXI主机

系统还具有无限的IOP。 (每秒输入/输出。)

我将此解决方案推荐给其他老师。

答案 1 :(得分:-4)

是的,但任何加速都不仅仅是语法构造函数,而是问题的可实现( [SEQ], [PAR] )重新制定:

教授认为,Amdahl's Law充分尊重大多数天真的,只是语法修饰的努力。

Contemporary criticism and re-formulation of the original Dr. Gene AMDAHL's argument考虑​​了两个主要的扩展:

  • 限制开销(不要忘记,从[SEQ]转换为[PAR]代码执行需要付出代价,总是会增加成本,严重违反任何预期的(实际的附加开销成本不可知)加速)

  • 任何[PAR] - 执行粒度的主要限制,在有限的,原子事务级别,其中任何其他可用资源,即使在无限容量中,也不会由于进一步不可分割的时间安排而进一步提高整体速度"原子性"

这两个问题将主导您的教育工作,而不是实际的VM抽象,并且确实很好地讨论来自调度的所有这些影响 - "阻止" - 资源,而不仅仅是CPU -core和硬件线程(O / S调度),由VM-hypervisor物理或抽象。

正如伟大的CRAY Chapel团队成员已经多次注意到的那样,真正的硬件NUMA问题对最终的附加开销产生了很大影响,高级公式语法实际上会注入到真实平台处理中,所以景观甚至更加狂野。

虚拟机:

更好地检查VM-hypervisor生成的VM-NUMA拓扑(hwloc / lstopo)以更好地解码VM-CPU-Cache架构,您的VM-sand-box将面向任何硬件导向低级{C |汇编} - 编码,可以想象很多"愚弄"效果,如果VM声称vCPU有8个独立的vCPU套接字,每个套接口有4个独立的vCPU核心,每个核心都有一个完全独立的vCPU核心。非共享vCPU-CACHE的自治层次结构,其中没有一个级别被共享(尽管事实上,主机的物理CPU主要共享L3_CACHE(s))。

所有这些都误导了任何以硬件为中心的资源 - 优化者的决策(如果虚拟化错过了主机的物理属性,性能永远不会上升。)

(也可以使用Live platform at https://tio.run for tweaking and prototyping )