服务器在线3月25日报道:近日,惠普高性能计算解决方案经理Dave Field发表文章阐述并行计算应用软件研发的关键点,他指出:应用软件开发者应从服务器级别而并非只从处理器层面来考虑资源利用,为了更好的理解应用软件的性能,就必须对服务器进行完整的分析。全文如下:
对于应用软件的性能从来就没有简单的解决方案。在多数情况下串行(非并行)应用软件如果不耗费大量的人力和时间都无法实现并行。许多高性能计算应用软件都是并行计算的并具有很高的可升级性,如果在执行工作负载的过程中能分配到更多的核心,就能运行得更快。但并非所有的并行应用软件都可以升级,串行应用软件也面临着同样的性能壁垒。
提升性能最好的方法就是要充分了解应用软件如何利用系统资源。有了这方面的知识,应用软件的开发商和用户就都能改进程序的性能。从服务器级别而并非只从处理器层面来考虑资源利用是非常重要的。目前多数现有数据都是来自于处理器厂商,为了更好的理解应用软件的性能就必须对服务器进行完整的分析。这些重要的资源包括每个核心的内存带宽;I/O带宽;网络带宽;内存的数量以及每个核心高速缓存的数量。
共享高速缓存也是应用软件性能中的一个复杂因素。最新的X86-64处理器在2到多个核心之间共享一个高速缓存。因此,要想知道任何时间一个核心使用的高速缓存的数量是不可能的。共享高速缓存对于编码性能来说亦敌亦友。通过对应用软件进行分析和研究,应用程序开发商能对这种低延迟加以利用。但是很多编码都是根据每个核心最小限度的高速缓存来调试的,如果没有可以利用的高速缓存,应用软件的性能就会受到影响。应用软件运行时间的不稳定也是一个原因。
提升应用软件性能的解决方案之一就是对更多的代码进行并行计算。目前开发多线程程序存在的障碍是:由用户和程序开发者编译C++和C语言所必须遵循的规则的不稳定性和混乱。因此,要想实现共享内存并行程序设计就变得更加困难。
执行任务管理软件工具也对提升性能有所帮助。满足代码资源要求的服务器如果能够被合理的部署,应用软件将能运行的更快。惠普公司和Platform Computing及SLURM的开发开源工具合作,来设计和实现这种功能性。