让多核更强大:云计算催生高性能计算新模式
云计算会让多核HPC应用更普及吗?
在网上发起的一次投票中,175名受访者中有55%的人表示他们使用的计算机核心数量少于32核。IDC咨询公司的报告称,所有参与调研的高性能计算应用软件/用户中有57%使用32核处理器或者少于32核的计算机。因此正如之前所说,编写高性能计算应用软件的方式需要作出改变--线程模式(OpenMP)适用于核心数量较少的计算环境,分布式模式(MPI)适用于大容量核心计算环境(虽然MPI在两种环境下都能使用)。
如果我们假设半数的集群用户由于多核而选择放弃,那么市场会发生什么变化?请注意,这种情况实际上并不会发生,因为会产生支持,能耗,制冷和利用率等种种问题。桌面系统倒是有这种可能,可以想见大部分高性能计算市场向对称多处理系统转移。这大约占到市场的50%。
如果有一种在云上的高性能计算模式,情况就会大不相同,我们姑且将其叫做“HPC Cloud”,对于这种两者皆用的用户群非常有吸引力。用户可以用来测试、研发和运行应用软件,当他们需要更多循环周期时,可以把工作任务迁移到他们的本地集群,云上的集群或者两者皆可。这也是它的一大卖点。如果Cloud HPC能用于你的应用软件,那么购买新的集群就会便宜而方便得多。
确实,困扰这个市场的问题之一是集群的管理和支持。我经常问自己是否是个合格的集群管理员。这种不足经常会阻碍市场的增长。购买和运行本地集群需要人员,能源,制冷,空间和时间。集群的总体拥有成本是硬件成本的好几倍。Cloud HPC能减少大量的成本并且消除管理集群的人员需求。
再来说我的小型Limulus集群。马上它将拥有10个核心并且很快将升级到16核。这样我就能很轻松的进行本地测试,研发和运行可以扩展到更大数量节点的应用软件。一旦应用软件运行做好了准备,我会将任务提交给使用同样调度程序的云,这个云也是我在本地系统上用来完成工作任务的。由于在大规模节点运行应用软件之前,我已经有了测试和运行节点的平台,我就能更好的利用我的云循环(我不需要Cloud来调试或者测试节点。本地系统可以帮助我完成这项工作)。48核或者24核桌面系统对称多处理系统也是如此。我的本地桌面系统高性能计算系统已经成为HPC Cloud的入口。
最终本地数据中心集群会去向何方呢?这会涉及到安全,隐私,可靠性和性能等很多问题。举例来说,目前亚马逊在线的弹性计算云是以万兆以太网为基础的,这对于很多需要InfiniBand性能的用户是不够的。我想Cloud HPC也将引发这样的争议。
最终的结论是降低高性能计算的使用成本,这将帮助高性能计算使用率的提升。按照这种趋势,可能会有三种“高性能计算模式”涌现出来。第一种将是我们所熟悉的传统本地集群。第二种可能是桌面系统对称多处理或者集群系统。这些系统将用来处理小型工作负载,核心数量在32核以下,可能会包括OpenMP和MPI应用软件。第三种模式将是桌面系统/云用户。这些用户将把他们的桌面系统作为原始高性能计算资源并且按照自身需求来使用外部循环(云或者本地集群)。任何一种方式,高性能计算都将向桌面系统更加的靠近。