交互式并行化工具通过给用户提供程序中的有效信息,包括相关性分析结果、程序调用图、性能预测结果等帮助用户进行并行化工作,但是如何更好地结合用户和并行化工具的能力还需要进一步研究。目前产品化的交互式并行化工具主要有APR的Forge,该系统支持Fortran77的并行化,并同时支持SMP系统和DMP系统。
二、开发工具
1. 调试器
调试是程序开发的重要部分,并行程序尤其难调试,更需要调试器的支持。高性能计算系统中大多会带有并行调试器,如IBM的pdb(命令行方式)、pedb(Xwindow图形界面)、HP的DDE(XWindow图形界面)和LaDebug(用于Alpha系统)、Sun的Prism等。
Etnus的TotalView是最著名的第三方并行调试器。它提供对C、C++、Fortran程序的图形化符号调试,可以调试MPI、PVM、HPF、OpenMP程序,支持SGI、Sun、HP、IBM等几乎所有的高性能厂商的产品,还提供对Linux的支持。
KAI的Assure Thread Analyzer是一个支持OpenMP的程序正确性检测工具,用于自动发现程序中的常见错误。它目前仅支持IA32和IA64上的Linux。
2. 性能分析和预测
程序性能分析(profiling)可以帮助用户找到程序中最费时的部分,从而集中精力进行改进和优化,是改进程序性能的有效手段。传统的性能分析工具一般仅提供子程序级的性能分析,但对于高性能程序来说,对于循环程序的性能分析是必不可少的。现有的大部分高性能计算系统中大都具有能够进行循环级性能分析的性能分析器,有些还提供了友好的用户界面,如Intel的VTune、IBM的Xprofiler等。
一些第三方厂商也提供性能分析工具,比如Pallas的Vampir,它支持从Linux PC到IBM、HP、Sun、SGI等几乎所有的高性能厂商的产品。
3.资源管理和负载平衡系统
严格地说,负载平衡系统是运行时环境,而不是开发环境,但对于开发者来说,了解负载平衡系统是有必要的。
某些高性能计算系统主要用于提供共享的多任务处理环境。对于SMP系统来说,操作系统内置的任务调度器可以完成任务的调度功能。对于DMP系统来说,需要专门的软件来进行任务调度,达到负载平衡。负载平衡系统通过了解系统中各个结点的负载状况、计算能力、内存状况等,可以合理地分配任务的执行结点,必要时迁移现有的任务到其他结点,从而达到提高系统吞吐量的作用。
著名的负载平衡系统包括Platform公司的LSF(Load Sharing Facility)和Veridian的PBS(Portable Batch System)。这两个系统都支持多种操作系统和硬件平台,能够管理异构的集群系统。另外开放源代码的OpenMosix主要支持Linux集群系统。
三、发展趋势
OpenMP将成为支持SMP系统编程的主要标准,将来的工作在于研究和开发更加有效的OpenMP编译器,以及更加强大友好的开发、调试工具。MPI和PVM将仍然是DMP系统的主要标准。
并行库是很有前途的开发方式和研究方向,随着更多的并行程序库的出现,并行化编程会越来越容易。
程序自动并行化技术也能大大缩短并行程序的开发时间,但目前的技术即使对SMP系统也没有达到实用的水平,还需要技术上的突破。
网格计算是现在的热门话题,也是将来高性能计算的发展方向之一。为网格计算制定标准,提供所需的开发环境和运行环境将是未来的发展方向。
通信技术—减少时延——清华大学 林闯 谭章熹
最理想的情况下,高性能计算机的性能是所有节点计算性能的简单相加,实际上系统的整体性能根本达不到理想情况,主要原因是各节点之间存在通信时延。围绕减少通信时延,发展了独具特色的HPC通信技术。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-26149-4.html
公关了
也不敢再找事羞辱我们