多核与高效能计算的软件工程
我们协助客户进行应用程序创新
HPC 软件工程是一为了让软件能够在多核处理器、GPUs、集群环境与超级计算机环境展现更好性能的任务。它包含了如何将算法与并行软件技术进行优化的处理,让整个程序更具延伸性; 让整个软件更为坚固正确,而且可以移植到不同的高效能计算环境中;并且能够取得最快的运行性能。
应用程序的结果 ...
多核技术已经是科学与数值计算的标准。然而你的软件往往无法达到多核所能达成的潜在性能,除非你能够针对这样的硬件架构进行优化的程序设计。 实际上,若应用程序没有针对多核硬件进行优化的设计,也许反而会在多核的环境中运行得更慢、更没有效率,如同串行程序运行在单核上,而且会增加诸如内存的系统资源争夺问题。 如今计算机产业将会持续提供更多的内核、更多的并行方法与不同的处理器,而不会着眼在提高处理器的运行速度。对数值计算的使用者而言,投资在更具生产力的人或软件上反而是最重要的事, 而非如以往传统的专注在硬件预算上。
"... 它不仅仅只是单纯计算性能表现得如何,更正要的是它使否能对你的商业目的提供更多的效益。换句话说:它的生产力有多少? "
超级计算是否仅仅只考虑性能?, ZDNet UK, Oct 2008
应用程序往往使用的比任何硬件都还要来的久,所以主要软件的投资回报往往会持续很多年,而不是如同硬件的短暂生命周期。 NAG 的 HPC 顾问团队具备丰富的并行程序设计经验与高效能计算的技术,能够提供您必要的协助。
我们能够提供协助...
NAG 能够协助您将您的程序透过相关的技术 (例如:GPUs 与 clusters),移植到多核的处理器中运行。NAG 的并行计算专家能够与您共同合作提升您程序在多核环境中的运行性能。 我们可以导入 OpenMP、CUDA、MPI 等相关标准与技术将您的程序转化为并行版本。 如果您的程序已经是并行的版本,我们也能够针对算法进行优化的服务,以及提供最佳的资源利用安排,以因应核心数、内存带宽或处理器内部讯息传递的增加。 我们的专家能够将您的应用程序自符合少量核心计算的规模,延展扩充到充分支持数千个核心的计算,或者是应用到集群或者超级计算机环境。 NAG 同时也能针对高效能软件提供全面的方法,以确保应用的算法是正确合适,而且是稳固的,充分信赖应用程序的计算结果。 将您的程序提升,完全的应用最新的多核或者是超级计算机的并行计算技术,你完全可以确保你的软件是由运算能力最强的技术所支持,并提供了最佳的计算结果。
更快、更好、更便宜...
减少了程序的计算时间、你可以在同样的时间完成更多的模拟工作、运行更大的模型计算或更精密的模型估计、更为复杂更正确的物理现象计算、探索更多的参数与统计的变异等。 你可以透过有效率的调整与优化的处理,去使用更多的处理器、内存等地计算资源去达到更有效率的计算工作。 强化应用系统的稳定性与可移植性能够让你可以使用更多不同的 HPC 系统,还可以得到更多的成本效益。HPC 软件工程提供了更快速、更好与更便宜的解决方案。