MPP :即大规模并行处理,按照当前的标准,具有几百台~几千台处理机的任何机器都是大规模并行处理系统。
8.2 一个具有32台处理机的系统,对远程存储器访问时间是2000ns。除了通信以外,假设计算中的访问均命中局部存储器。当发出一个远程请求时,本地处理机挂起。处理机的时钟周期时间是10ns,假设指令基本的CPI为1.0(设所有访存均命中Cache)。对于下述两种情况:
(1) 没有远程访问;
(2) 0.5%的指令需要远程访问。 试问前者比后者快多少?
解:已知远程访问率 p = 0.5%,远程访问时间 t = 2000ns,时钟周期 T = 10ns 远程访问开销 C = t/T = 2000ns/10ns = 200(时钟周期数) 有 0.5%远程访问的机器的实际 CPI2 为: CPI2 = CPI1 + p×C = 1.0 + 0.5%×200 = 2.0 只有局部访问的机器的基本 CPI1 = 1.0 CPI2/ CPI1 = 2.0/1.0 = 2(倍)
因此,没有远程访问状态下的机器速度是有0.5% 远程访问的机器速度的2 倍。
8.3 什么是多处理机的一致性?给出解决一致性的监听协议和目录协议的工作原理。
答:(1) 对多个处理器维护一致性的协议称为Cache一致性协议。
(2)目录协议的工作原理:采用一个集中的数据结构——目录。对于存储器中的每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。目录协议根据该项目中的信息以及当前要进行的访问操作,依次对相应的Cache发送控制消息,并完成对目录项信息的修改。此外,还要向请求处理器发送响应信息。
(3)监听协议的工作原理:每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。
8.4 在标准的栅栏同步中,设单个处理器的通过时间(包括更新计数和释放锁)为C,求N个处理器一起进行一次同步所需要的时间。
解:我们忽略读写锁的时间。N个处理器中的每一个都需要C个时钟周期来锁住与栅栏相关的计数器,修改它的值,然后释放锁。考虑最坏情况,所有N个处理器都要对计数器加锁并修改它的值,由于锁只能顺序访问计数器,在同一时间,只能有一个处理器修改计数器的数据。所以,总共要花NC个时钟周期使得所有的处理器都到达数据栅栏。
8.6 采用排队锁和fetch-and-increment重新实现栅栏同步,并将它们分别与采用旋转锁实现的栅栏同步进行性能比较。
解:fetch-and-increment(count);
if (count=total){
count=0; release=1; }
//进程全部到达 //重置计数器 //释放进程
else{
spin(release=1); }
//还有进程未到达 //等待信号
当有N个处理器时,上述代码执行fetch-and-increment操作N次,当访问释放操作的时候,有N个Cache未命中。当最后一个处理器到达栅栏条件后,release被置为“1”,此时有N-1个Cache未命中(对于最后一个到达栅栏的处理器,当它读release的时候,将在主存中命中)。所以,共有3N-1次总线传输操作。如果有10个处理器,则共有29次总线传输操作,总共需要2900个时钟周期。
8.7 有些机器实现了专门的锁广播一致性协议,实现上可能使用不同的总线。假设使用写广播协议,重新给出例8.3旋转锁的时间计算。
解:当实现了专门的锁广播一致性协议后,每当一把锁被释放的时候,和锁相关的值将被广播到所有处理器,这意味着在处理器对锁变量进行读操作的时候,未命中的情况永远不会发生。
假定每个Cache都有一个数据块保留锁变量的初值。通过下表可以知道,10次上锁/释放锁的平均时间是550个时钟周期,总时间是5500个时钟周期。 事件 所有处理器都读(命中)锁 释放锁的处理器进行写(不命中)广播 读(命中)锁(处理器认为锁是空闲的) 一个处理器进行写交换广播,同时还有9个写广播 一个处理器得到并释放锁的总时间 持续时间 0 100 0 1000 1100
第9章 机群
9.1 解释下列术语
机群:是一种价格低廉、易于构建、可扩放性极强的并行计算机系统。它由多台同构或异构的独立计算机通过高性能网络或局域网互连在一起,协同完成特定的并行计算任务。从用户的角度来看,机群就是一个单一、集中的计算资源。
单一系统映象:包含四重含义。(1)单一系统。尽管系统中有多个处理器,用户仍然把整个机群视为一个单一的计算系统来使用。(2)单一控制。逻辑上,最终用户或系统用户使用的服务都来自机群中唯一一个位置。(3)对称性。用户可以从任一个结点上获得机群服务,也就是说,对于所有结点和所有用户,除了那些具有特定访问权限的服务与功能外,所有机群服务与功能都是对称的。(4)位置透明。用户不必了解真正提供服务的物理设备的具体位置。
高可用性机群:当系统中某些结点出现故障的情况下,仍能继续对外提供服务。它采用冗余机制,当系统中某个结点由于软、硬件故障而失效时,该结点上的任务将在最短的时间内被迁移到机群内另一个具有相同功能与结构的结点上继续执行。
负载均衡机群:机群能够根据系统中各个结点的负载情况实时地进行任务分配。它专门
设置了一个重要的监控结点,负责监控其余每个工作结点的负载和状态,并根据监控结果将任务分派到不同的结点上。
高性能计算机群:通过高速的商用互连网络,将数十台乃至上千台PC机或工作站连接在一起,可以提供接近甚至超过传统并行计算机系统的计算能力,但其价格却仅是具有相同计算能力的传统并行计算机系统的几十分之一。
Beowulf机群:使用普通的硬件加上Linux操作系统、再加上GNU开发环境以及PVM/MPI共享库所构建的机群。它一方面集中了那些相对较小的机器的计算能力,能够以很高的性能价格比提供与大型机相当的性能,另一方面也保证了软件环境的稳定性。
9.2 机群系统有什么特点?
答:(1)系统开发周期短。由于机群系统大多采用商品化的PC机、工作站作为结点,并通过商用网络连接在一起,系统开发的重点在于通信子系统和并行编程环境上,这大大节省了研制时间。
(2)可靠性高。机群中的每个结点都是独立的PC机或工作站,某个结点的失效并不会影响其它结点的正常工作,而且它的任务还可以传递给其它结点完成,从而有效地避免由于单结点失效引起的系统可靠性降低的问题。
(3)可扩放性强。机群的计算能力随着结点数量的增加而增大。这主要是得益于机群结构的灵活性,由于结点之间以松耦合方式连接,机群的结点数量可以增加到成百上千。另外,机群系统的硬件容易扩充和替换,可以灵活配置。
(4)性能价格比高。由于生产批量小,传统并行计算机系统的价格均比较昂贵,往往要几百万到上千万美元。而机群的结点和网络都是商品化的计算机产品,能够大批量生产,成本相对较低,因而机群系统的性能价格比更好。与相同性能的传统并行计算机系统相比,机群的价格要低1~2个数量级。
(5) 用户编程方便。机群系统中,程序的并行化只是在原有的C、C++或Fortran串行程序中插入相应的通信原语,对原有串行程序的改动有限。用户仍然使用熟悉的编程环境,无需适用新的环境。
9.3 说明IBM SP2的体系结构特点。
答:SP2机群是异步的MIMD,具有分布式存储器系统结构。它的每个结点都是一台RS/6000工作站,带有自己的存储器和本地磁盘。结点中采用的处理器是一台6流出的超标量处理机,每个时钟周期可以执行6条指令。
SP2的结点数可以从2个到512个不等,每个结点配有一套完整的AIX操作系统(IBM的UNIX),结点间的互连网络接口是松散耦合的,通过结点本身的I/O微通道(MCC)接到网络上。
SP2的结点都有1个指令Cache,1个数据Cache,1个分支指令和转移控制部件,2个整数部件和2个浮点部件,但它们在存储器容量、数据宽度和I/O总线插槽个数上有所不同。
系统采用标准的工作站部件,仅在标准技术不能满足性能要求时才使用专用软件和硬件。
SP2的I/O系统基本上是围绕着HPS建立的,并可以用一个LAN网关同SP2系统外的其他计算机连接。
SP2中设置了一个专门的系统控制台用以管理整个系统,系统管理人员可以通过这个系统控制台从单一地点对整个系统进行管理。