并行编程:从经典应用到现代硬件的变革
1. 经典并行性的应用
并行编程和高效并行程序的设计在高性能科学计算领域已经成熟多年。科学问题的模拟在自然科学和工程科学中愈发重要,更精确的模拟或更大规模问题的模拟需要更强大的计算能力和更大的内存空间。
在过去几十年里,高性能研究涵盖了并行硬件和软件技术的新发展,并行高性能计算取得了稳步进展。以下是一些典型的应用场景:
|应用领域|具体应用|说明|
| ---- | ---- | ---- |
|天气预报|基于涉及偏微分方程的复杂数学模型进行模拟|只能通过模拟预测大气未来发展|
|汽车行业|基于有限元方法进行碰撞模拟|相比实际碰撞测试,计算机模拟成本更低|
|药物设计|计算机模拟辅助药物研发|可替代或增强物理实验|
|影视和广告行业|计算机图形应用|提升视觉效果|
计算机模拟通常需要大量的计算资源,低性能的计算机系统会显著限制模拟的规模和结果的准确性。因此,并行计算机常被用于执行计算机模拟。如今,由服务器节点组成的集群系统广泛应用于并行模拟。要使用并行计算机或集群系统,需将计算任务划分为多个独立的部分,并分配给并行资源执行。通常,科学模拟算法能提供足够的独立计算,适合并行执行。为了获得并行程序,算法需用合适的编程语言实现,并行执行常由特定的运行时库或编译器指令控制,这些指令会添加到标准编程语言(如C、Fortran或Java)中。
2. 当今硬件中的并行性
并行编程曾经是硬件和软件产品领域的小众技术,但随着硬件技术的重大变革,它正逐渐成为软件开发的主流技术。
主要芯片制造商开始生产多核处理器,每个芯片上有多个高效计算单元