多处理器、网络与线性代数计算
1. 多处理器与进程
在单指令多数据(SIMD)的相关内容中,会涉及循环展开和多数据处理。这里的背景是向量处理,它是机器同时计算多个独立数据的一种方法。之前关于循环展开的讨论在这种模式下同样适用。具体来说,会使用特殊的向量寄存器来实现循环展开,并且有大量的硬件支持。
对于多个独立处理器,每个处理器都使用之前讨论过的低级指令级并行性。一般而言,编程方法反映了以下观点:在向量处理中,利用特殊向量寄存器和硬件支持进行循环展开,以实现多个独立数据的并发计算。
2. 网络
常见的网络配置有以下两种:
2.1 O - 网络变体
O - 网络的变体常用于紧密耦合的集群和规模相对适中的多处理系统。例如,某些机器使用 log(NCPUs) 级网络将多个 CPU 紧密耦合在一个缓存一致的内存映像中。这些网络可能使用 4 -> 4 或更高阶的交换器,而非 2 -> 2 交换器。对于大量处理器,这种交叉开关排列可能会因所需的大量开关和复杂的布线安排而变得难以管理。不过,拥有 16 个或更少处理器的紧密耦合节点可以提供极高的性能,预计在未来几年,这种集群可能会成为超级计算机最流行的架构。节点之间通过复杂的总线系统进行消息传递,且节点之间没有内存一致性,数据依赖必须由软件控制。
2.2 紧密耦合网格网络
将处理器放置在紧密耦合的网格上的方法更适合大量 CPU。例如,流行的 Cray T3 - D、T3 - E 机器使用三维网格,其面以三维环面排列连接到对面。这种网络的节点本身性能可能不强,但网络功能极其强大,机器的成功证明了这种设计的高效性。消息传递通过低
超级会员免费看
订阅专栏 解锁全文
1346

被折叠的 条评论
为什么被折叠?



