HPC系统:走出实验室 进入企业
高性能计算的需求长期以来为科学家所用,但是大数据的出现和云计算的有效性将HPC系统带入到企业中。
高性能计算旨在解决计算密集型问题,比如天气预报、石油勘探和生物化学问题,但是其扩展范围并不大。HPC拥有广泛的业务应用,从分析增长的大型客户数据量和监控实时网络和应用日志,到模型化复杂工作流和模仿产品设计。HPC技术可以写帮助解决一些业务和IT中最难的挑战,比如预测哪些客户会流失、为交叉销售识别最佳实践、理解为什么产品失败和跨企业网络监控安全事件。HPC的好处还包括协助理解什么硬件、软件和方法论可用,以及哪一个最适合企业。
确定企业HPC硬件选择
高性能计算通常在超级计算机上执行,比如IBM Blue Gene,或者连接了高速网络连接器的计算机集群。假设你没有数百万美元来购买超级计算机,集群选择最适合企业,以内商品化硬件和开源HPC集群软件一应俱全。
当对于HPC应用有一致且长期的需求时,最合理的选择就是构建一个本地集群。像Amax、Aspen Systems和PCCS Labs这样的厂商可以提供预配置HPC集群,旨在支持大量核心处理器、高速网络和高性能存储。或者你可以使用商品服务器和随手可得的集群操作系统,比如MOSIX,来构建你自己的本地集群。
另一个选择就是用公有云提供商供应集群。亚马逊Web服务(AWS)提供的集群计算实例,配置了2个Intel Xeon E5-2670处理器,60.5 GB内存和10GB以太网。AWS的机器映像旨在为HPC提供性能改善,通过使用硬件虚拟化实现,在一些案例中,支持图形处理单元。集群内的虚拟服务器可以放在一个单一的布局群组中,最小化延迟。
如果你更乐意花费更多的时间分析你的数据,而不是配置集群,考虑使用MIT提供的StarCluster工具集;这个工具集旨在自动化亚马逊弹性计算云(EC2)上的虚拟机集群配置和管理。然而,如果你正在开发自己的HPC应用,平台即服务选择谷歌App Engine可能比亚马逊EC2更适合。通过谷歌App Engine,你可以用谷歌App Engine软件开发者工具集构建自己的应用,而且支持数个语言。
使用企业方法论 确定HPC软件
企业开发者对于HPC软件选择颇多,包括MapReduce平台、自动化处理软件、图形数据库和高性能、基于代理的建模系统。每一个都很好的适用于HPC特定的用例类型和方法论。
MapReduce用来处理模型,由谷歌推广流行,用Hadoop实现。MapReduce很好的修复了业务问题,可以分解成更小的问题,同时处理掉,并将其结果结合产生输出。例如,一个市场经理可能要想理解与客户相关的在线购物时间花费特性。数据来源于Web应用日志,手机了客户的IP地址的地理位置信息,会话开始和停留时间以及访问过的网页,结合来自第三方厂商的统计数据,产生一个客户的多特征视图。由于每一个客户同Web应用的交互是每一个客户的独立行为,这个数据集可以轻松分成子集并跨集群分布。
Hadoop在诸多实现中可用,包括Apache Hadoop、Cloudera Hadoop和MapR Hadoop。
然而,并不是所有的业务问题都可以轻松分解成更小的问题。比如,在市场经理手机了每个客户的信息以及其购物模式之后,她可能想要看到客户之间的关系。是否有客户集群链接了社交关系,能够影响产品购买选择?这种类型的社交网络分析更适合图形数据库,比如Neo4j。图形数据库允许企业轻松模块化实体,比如客户和产品,以及这些实体间的关系,比如客户的社交连接或者可能捆绑销售产品。实体和关系的数量在现实问题中相当大,且要求高性能计算硬件。
HPC也能够帮助处理企业实时事件监控,安全信息管理系统为例,可以收集网络上的实践数据流,比如登录失败、变更管理权限或者访问冲突。理想上,这些事件能够分析且企业其他发生的事情有对应关系。自动处理系统,比如Storm和S4,允许用户分析持续的数据流。Splunk是一个商业支持的大机数据分析工具,用于若干IT事件管理用例,包括应用管理、IT操作、安全和法规遵从。
数据中心之外的HPC
尽管HPC经常和大数据分析结盟,对于其他业务处理HPC也很有用。企业正在使用建模和仿真工具协助业务改善模板设计,优化机械系统性能并分析组件失败。一些仿真事件,比如为汽车的气流建模,需要基于不同设备的计算密集模型。设计师可以利用建模和HPC来更好地理解在一系列情况下产品功能如何。商业工具,比如Matlab,和开源工具,比如NumPy和SciPy包,针对Python,广泛用于这种类型的HPC问题。