中科大多核并行计算课件
中科大-并行计算讲义-并行计算机系统与结构模型

Intel Paragon系统框图
I/O部分
SCSI
计算
节点
节点
计算部分
计算 节点
……
服务部分 I/O部分
计算
服务
SCSI
节点
节点
节点
以太网
HIPPI 节点
计算 节点
计算 节点
……
计算 节点
服务 节点
SCSI 节点
FDDI
VME 节点
用户I/O
磁带
HIPPI 节点
计算 节点
计算 节点
……
计算 节点
CU
PE0
PE1
…
P E n-1
IN
M0
M1
…
M m-1
(b)共享存储阵列机
中科大-并行计算讲义-并行计算机系统与结构模 型
2021/1/21
6
阵列处理机的特点
• SIMD-单指令多数据流机
• 利用资源重复开拓计算空间的并行
• 同步计算--所有PE执行相同操作
• 适于特定问题(如有限差分、矩阵运算等) 求解
2021/1/21
10
Balance同构对称多处理机系统
80386CPU Weitek1167FPU
…
80386CPU Weitek1167FPU
存储器 8MB
…
存储器 8MB
64KB 高速缓存
…
64KB 高速缓存 系统总线
存储控制器
… 存储控制器
总线适配器 以太局域网
磁盘控制器
…
磁盘
磁盘
总线适配器 多总线
• 阵列处理机 分布存储 共享存储 流水线
• 向量处理机 并行向量机
并行计算PPT课件

C
Shell P
C
Shell P
互连网络
互连网络
(a)无共享
互连网络 共享磁盘
共享存储器 共享磁盘
(c)共享存储
(b)共享磁盘
2020/9/16
5
五种结构特性一览表
属性 结构类型 处理器类型 互连网络 通信机制 地址空间 系统存储器 访存模型 代表机器
2020/9/16
PVP MIMD 专用定制
SMP MIMD 商用
HP/Convex Exemplar)
分 布 存 储 器 NCC-NUMA (Cray T3E)
MIMD
DSM
NORMA
Cluster
(IBM SP2,DEC TruCluster Tandem Hymalaya,HP,
Microsoft Wolfpack,etc)
( 松散耦合)
(TreadMarks, Wind Tunnel, IVY,Shrimp,
etc.)
多计算机 (多 地 址 空 间 非 共 享 存 储 器 )
MPP (Intel TFLOPS)
( 紧耦合)
2020/9/16
7
SMP\MPP\机群比较
系统特征 节点数量(N) 节点复杂度 节点间通信
节点操作系统
支持单一系统映像 地址空间 作业调度 网络协议 可用性 性能/价格比 互连网络
S
MP
(Intel SHV,SunFire,DEC 8400, SGI PowerChallenge,IBMR60,etc.)
多处理机 ( 单地址空间
共享存储器 )
NUMA
COMA (KSR-1,DDM)
CC-NUMA
(Stanford Dash, SGI Origin 2000,Sequent NUMA-Q,
中国科技大学GPU并行计算课件class7

GPU Architecture in detail and PerformanceOptimization (Part II)Bin ZHOU USTCAutumn, 20131 © 2012, NVIDIAAnnouncements •The Following Classes:–11/23 Review and Project Review–11/30 Final Exam + Project–12/07 12/14 Project–12/21 Project Defense–12/28 Or after that Course Close. •Project Source Code + Report + PPT •Important Time: Due to: 2013/12/18 24:00Contents•Last lecture Review + Continue•Optimization + Kepler New Things•Tools for Project3 © 2012, NVIDIAOptimizationMake the best or most effective use of asituation or resourceLast Lecture•General guideline•Occupancy Optimization•Warp branch divergence•Global memory access•Shared memory accessOutline•General guideline II•CPU-GPU Interaction Optimization•Kepler in detailTools•Winscp–Copy files from/to remote servers•Notepad++–Edit source files (with keyword highlighting)GENERAL GUIDELINE II8 © 2012, NVIDIAKernel Optimization WorkflowFind LimiterCompare topeak GB/s Memory optimization Compare topeak inst/sInstructionoptimizationConfigurationoptimizationMemory boundInstructionboundLatencybound Done!<< <<~ ~General Optimization Strategies: Measurement•Find out the limiting factor in kernel performance –Memory bandwidth bound (memory optimization)–Instruction throughput bound (instruction optimization) –Latency bound (configuration optimization)•Measure effective memory/instruction throughputMemory Optimization•If the code is memory-bound and effective memory throughput is much lower than the peak•Purpose: access only data that are absolutely necessary•Major techniques–Improve access pattern to reduce wasted transactions–Reduce redundant access: read-only cache, shared memoryInstruction Optimization•If you find out the code is instruction bound–Compute-intensive algorithm can easily become memory-bound if not careful enough–Typically, worry about instruction optimization after memory and execution configuration optimizations•Purpose: reduce instruction count–Use less instructions to get the same job done•Major techniques–Use high throughput instructions (ex. wider load)–Reduce wasted instructions: branch divergence, reduce replay (conflict), etc.Latency Optimization•When the code is latency bound–Both the memory and instruction throughputs are far from the peak•Latency hiding: switching threads–A thread blocks when one of the operands isn’t ready•Purpose: have enough warps to hide latency•Major techniques: increase active warps, increase ILPCPU-GPU INTERACTION14 © 2012, NVIDIAMinimize CPU-GPU data transferHost<->device data transfer has much lower bandwidth than global memory access.16 GB/s (PCIe x16 Gen3) vs 250 GB/s & 3.95 Tinst/s (GK110)Minimize transferIntermediate data can be allocated, operated, de-allocated directly on GPU Sometimes it’s even better to recompute on GPUMove CPU codes to GPU that do not have performance gains if it can reduce data transferGroup transferOne large transfer much better than many small onesOverlap memory transfer with computationPCI Bus 1.Copy input data from CPU memory to GPUmemoryPCI Bus 1.Copy input data from CPU memory to GPUmemory2.Load GPU code and execute itPCI Bus 1.Copy input data from CPU memory to GPUmemory2.Load GPU code and execute it3.Copy results from GPU memory to CPUmemory•T total=T HtoD+T Exec+T DtoH •More Overlap?HtoD Exec DtoH Stream 1HD1 HD2 E1 E2 DH1 DH2 Stream 2cudaStreamCreate(&stream1);cudaMemcpyAsync(dst1, src1, size, cudaMemcpyHostToDevice, stream1);kernel<<<grid, block, 0, stream1>>>(…);cudaMemcpyAsync(dst1, src1, size, stream1);cudaStreamSynchronize(stream1);cudaStreamCreate(&stream1);cudaStreamCreate(&stream2);cudaMemcpyAsync(dst1, src1, size, cudaMemcpyHostToDevice, stream1); cudaMemcpyAsync(dst2, src2, size, cudaMemcpyHostToDevice,stream2);kernel<<<grid, block, 0, stream1>>>(…);kernel<<<grid, block, 0, stream2>>>(…);cudaMemcpyAsync(dst1, src1, size, cudaMemcpyDeviceToHost, stream1); cudaMemcpyAsync(dst2, src2, size, cudaMemcpyDeviceToHost, stream2);cudaStreamSynchronize(stream1);cudaStreamSynchronize(stream2);KEPLER IN DETAIL23 © 2012, NVIDIAKepler•NVIDIA Kepler–1.31 tflops double precision–3.95 tflops single precision–250 gb/sec memorybandwidth–2,688 Functional Units(cores)•~= #1 on Top500 in 1997- KeplerKepler GK110 SMX vs Fermi SM3x perfPower goes down!New ISA Encoding: 255 Registers per Thread•Fermi limit: 63 registers per thread–A common Fermi performance limiter–Leads to excessive spilling•Kepler : Up to 255 registers per thread–Especially helpful for FP64 appsHyper-Q•Feature of Kepler K20 GPUs to increase application throughput by enabling work to be scheduled onto the GPU in parallel •Two ways to take advantage–CUDA Streams – now they really are concurrent –CUDA Proxy for MPI – concurrent CUDA MPIprocesses on one GPUBetter Concurrency SupportWork Distributor32 active gridsStream Queue Mgmt C B AR Q PZ Y XGrid Management UnitPending & Suspended Grids 1000s of pending gridsSMX SMX SMX SMXSM SM SM SM Work Distributor16 active gridsStream Queue MgmtC B AZ Y XR Q PCUDAGeneratedWorkFermiKepler GK110Fermi ConcurrencyFermi allows 16-way concurrency –Up to 16 grids can run at once–But CUDA streams multiplex into a single queue –Overlap only at stream edges P<<<>>> ;Q<<<>>> ;R<<<>>> A<<<>>> ; B<<<>>> ;C<<<>>> X<<<>>> ;Y<<<>>> ; Z<<<>>> Stream 1Stream 2Stream 3Hardware Work QueueA--B--C P--Q--R X--Y--ZKepler Improved ConcurrencyP<<<>>> ; Q<<<>>> ; R<<<>>>A <<<>>>;B <<<>>>;C<<<>>>X <<<>>>;Y <<<>>>; Z<<<>>>Stream 1Stream 2Stream 3Multiple Hardware Work QueuesA--B--CP--Q--R X--Y--ZKepler allows 32-way concurrencyOne work queue per stream Concurrency at full-stream level No inter-stream dependenciesCPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBACPU ProcessesShared GPUE FDCBAHyper-Q: Simultaneous MultiprocessE FDCBACPU ProcessesShared GPUCUDA ProxyClient – Server Software SystemWithout Hyper-QTime100500 G P U U t i l i z a t i o n % A B C D E FWith Hyper-Q Time 10050 0 G P U U t i l i z a t i o n % A A ABB BC CC D DDE E EF F FWhat is Dynamic Parallelism?The ability to launch new kernels from the GPU –Dynamically - based on run-time data–Simultaneously - from multiple threads at once–Independently - each thread can launch a different gridCPU GPU CPU GPU Fermi: Only CPU can generate GPU work Kepler: GPU can generate work for itselfCPU GPU CPU GPUWhat Does It Mean?Autonomous, Dynamic Parallelism GPU as Co-ProcessorNew Types of Algorithms•Recursive Parallel Algorithms like Quick sort •Adaptive Mesh Algorithms like Mandelbrot CUDA TodayCUDA on KeplerComputational Powerallocated to regions of interestGPU Familiar Programming Model__global__ void B(float *data) {do_stuff(data);X <<< ... >>> (data);Y <<< ... >>> (data);Z <<< ... >>> (data);cudaDeviceSynchronize();do_more_stuff(data);}ABCXYZ CPUint main() {float *data;setup(data);A <<< ... >>> (data);B <<< ... >>> (data);C <<< ... >>> (data);cudaDeviceSynchronize(); return 0;}__device__ float buf[1024]; __global__ void cnp(float *data){int tid = threadIdx.x;if(tid % 2)buf[tid/2] = data[tid]+data[tid+1];__syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize();}Code Example Launch is per-threadand asynchronous__device__ float buf[1024]; __global__ void cnp(float *data) { int tid = threadIdx.x; if(tid % 2) buf[tid/2] = data[tid]+data[tid+1]; __syncthreads(); if(tid == 0) { launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize();}__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize();}Code Example Launch is per-threadand asynchronousCUDA primitives are per-blocklaunched kernels and CUDA objects like streams are visible to all threads in athread blockcannot be passed to child kernel__device__ float buf[1024]; __global__ void cnp(float *data) { int tid = threadIdx.x; if(tid % 2) buf[tid/2] = data[tid]+data[tid+1];__syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize();}__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize();} Code Example Launch is per-threadand asynchronousCUDA primitives are per-blockSync includes all launches by any thread in the block__device__ float buf[1024]; __global__ void cnp(float *data) { int tid = threadIdx.x; if(tid % 2) buf[tid/2] = data[tid]+data[tid+1]; __syncthreads(); if(tid == 0) { launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); } __syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize();}Code Example Launch is per-threadand asynchronousCUDA primitives are per-blockSync includes all launchesby any thread in the blockcudaDeviceSynchronize() does not imply syncthreads()__device__ float buf[1024]; __global__ void cnp(float *data){int tid = threadIdx.x;if(tid % 2)buf[tid/2] = data[tid]+data[tid+1];__syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize();}__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize();}Code Example Launch implies membar(child sees parent state at time of launch)__device__ float buf[1024]; __global__ void cnp(float *data) { int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1];__syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); } Code Example Launch implies membar(child sees parent state at time of launch) Sync implies invalidate(parent sees child writes after sync)。
中科大-并行计算讲义-并行计算机系统与结构模型PPT文档共37页

中科大-并行计算讲义-并行计算机系 统与结构模型
11、不为五斗米折腰。 12、芳菊开林耀,青松冠岩列。怀此 贞秀姿 ,卓为 霜下杰 。
13、归去来兮,田蜀将芜胡不归。 14、酒能祛百虑,菊为制颓龄。 15、春蚕收长丝,秋熟靡王税。
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
中科大多核并行计算课件

• 划分重点在于:子问题易解,组合成原问题的解方便; • 有别于分治法
常见划分方法
• 均匀划分 • 方根划分
• 对数划分
• 功能划分(补)
2013-6-26
《并行与分布计算》 3 / Ch6
6.1.4 功能划分
方法: n个元素A[1..n]分成等长的p组,每组满足 某种特性。 示例: (m, n)选择问题(求出n个元素中前m个最小者)
2013-6-26
《并行与分布计算》 6 / Ch6
6.1.4 功能划分
2.2 奇偶归并示例:m=n=4 A=(2,4,6,8) B=(0,1,3,5)
(4, 4)2×(2, 2)4×(1, 1)
2 4 6
8 0 1 3
2 0 6
3 4 1 8
0 2 3
6 1 4 5
0 2 3
6 1 4 5
0 1 2 3 4 5 6 8 交叉比较
- 功能划分:要求每组元素个数必须大于m;
- 算法是基于Batcher排序网络,下面先介绍一些预备知识 :
1.Batcher比较器
2.奇偶归并及排序网络: 网络构造、奇偶归并网络、奇偶排序网络
3.双调归并及排序网络:
定义与定理、网络构造、双调归并网络、双调排序网络
《并行与分布计算》 4 / Ch6
1
3
Circuit for 4 inputs
1 2 3 4 15 21 28
《并行与分布计算》 24 / Ch6
6
10 10 5 + 11 10 10
Circuit for 4 inputs
+ 10 18 +
26
中科大-并行计算讲义第二讲-PC机群的搭建

重要特征
机群的各节点都是一个完整的系统,节点可以是工作站, 也可以是PC机或SMP机器; 互连网络通常使用商品化网络,如以太网、FDDI、光 通道等,部分商用机群也采用专用网络互连; 网络接口与节点的I/O总线松耦合相连; 各节点有一个本地磁盘; 各节点有自己的完整的操作系统。
这几行的意思是将服务器上的/home和/Cluster目录进行共享, 设置节点node1到node63可以访问,rw表示允许读和写(缺省为 只读)。这里要注意的一点是所有用到的主机名必须在文件 /etc/hosts中给出ip地址,例如: 192.168.0.11 node1
国家高性能计算中心(合肥) 2014-7-15 23
国家高性能计算中心(合肥)
2014-7-15
22
单一文件管理
(2) 设置共享目录:首先,在根目录下建立目录/home和/Cluster。
[node0]# mkdir home [node0]# mkdir Cluster
然后,在文件/etc/exports当中增加以下几行。
/home /Cluster …… /home /Cluster node1 (rw) node1 (rw) node63 (rw) node63 (rw)
国家高性能计算中心(合肥)
2014-7-15
5
分类
根据不同的标准,可有多种分类方式
针对机群系统的使用目的可将其分为三 类: 1. 高性能计算机群 2. 负载均衡机群 3. 高可用性机群
国家高性能计算中心(合肥)
2014-7-15
6
典型机群系统
Berkeley NOW Beowulf
理学中科大多核并行计算课件

使用HiPPI通道和开关构筑的 LAN主干网
超级计算机
帧缓冲器 RGB 显示器
300米 HiPPI 串行
Байду номын сангаас25米
存储器 服务器
25米 HiPPI HiPPI 交换开关
直至10千米
光纤扩展器
光纤扩展器
HiPPI 交换开关
25米
文件 服务器
串行
HiPPI
300米
300米 串行
大规模并行 处理系统
小型机
工作站 工作站
系统互连
▪ 不同带宽与间隔 的互连技术: 总线、SAN、LAN、MAN、WAN
100 Gb/s
MIN 或 交叉开关
10 Gb/s
局部总线 SCI
HiPPI
网络带宽
1 Gb/s
Myrinet 千兆位 以太网
100
I/O 总线
光纤 通道
FDDI
Mb/s
快速以太网
100 Base T
ATM
10 Mb/s
▪ 环网可完美嵌入到2-D环绕网中 ▪ 超立方网可完美嵌入到2-D环绕网中
嵌入〔2〕
1000
1001
1011
1010
1100
1101
1111
1110
0100
0101
0111
0110
0000
0001
0011
0010
0100
0110 0101
0111
0000
0010 0001
0011
1100
1110 1101
1111
1000
1010 1001
1011
静态互连网络特性比较
GPU计算 中国科技大学 并行算法 课件

据,访存速度很快 8192个32位字大小的寄存器文件供共享
To speed up access to the texture memory space
Device memory
Global, constant, texture memories
2.2 基本访存开销
存储器类型 寄存器 (Registers) 共享存储器 (Share Memory) 全局存储器 (Device Memory) 本地存储器 (Local Memory) 位置 芯片上 芯片上 设备上 设备上 是否被缓 存 不被缓存 不被缓存 不被缓存 不被缓存 被缓存 被缓存 访问速度 几乎没有额外延迟 同寄存器 400-600时钟周期 400-600时钟周期 被缓存时:同寄存器 未被缓存: 400-600时钟周期 被缓存时:同寄存器 未被缓存: 400-600时钟周期
PartⅠ Introduction to GPU
1. GPU的发展 2. CPU和GPU比较 3. GPU的应用和资源
2.1 单核时代的摩尔定律
CPU时钟频率每18个月翻一番 CPU制造工艺逐渐接近物理极限 功耗和发热成为巨大的障碍
2.2 GPU是多核技术的代表之一
在一块芯片上集成多个较低功耗的核心 单个核心频率基本不变(一般在1-3GHz) 设计重心转向到多核的集成技术
1.2 GPU的发展阶段
第一代GPU(1999年以前):部分功能从CPU分离,实现硬件 加速
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-6-26
5
大规模并行机MPP
成百上千个处理器组成的大规模计算机系统,规模是变化的。 NORMA结构,高带宽低延迟定制互连。 可扩放性:Processors, Memory, Bandwidth, I/O, 平衡设计 系统成本:商用处理器,相对稳定的结构,SMP, 分布 通用性和可用性:不同的应用,PVM, MPI,交互,批处理,互连 对用户透明,单一系统映象,故障 通信要求 MB MB 存储器和I/O能力 P/C P/C 例子:Intel Option Red LM … LM
2
第二章 当代并行机系统
2.1 共享存储多处理机系统
2.1.1 对称多处理机SMP结构特性
2.2 分布存储多计算机系统
2.2.1 大规模并行机MPP结构特性
2.3 机群系统
2.3.1 大规模并行处理系统MPP机群SP2 2.3.2 工作站机群COW
国家高性能计算中心(合肥)
国家高性能计算中心(合肥)
2013-6-26
8
机群型大规模并行机SP2
设计策略:
机群体系结构 标准环境 标准编程模型 系统可用性 精选的单一系统映像
P D MCC P I/O总线 NIC 节点1 E 以太网 P D MCC P I/O总线 NIC S 节点N E
…
系统结构:
IBM SP2, Dawning 1000
NIC NIC
定制网络
国家高性能计算中心(合肥)
2013-6-26
6
典型MPP系统特性比较
MPP模型 Intel/Sandia ASCI Option Red 9072个处理器, 1.8Tflop/s(NSL) 1996年12月 200MHz, 200Mflop/s Pentium Pro 2个处理器,32到 256MB主存,共 享磁盘 分离两维网孔, NORMA 轻量级内核 (LWK) 基于PUMA Portals的MPI Nx,PVM,HPF IBM SP2 SGI/Cray Origin2000 128个处理器, 51Gflop/s(NCSA) 1996年10月 200MHz, 400Mflop/s MIPS R10000 2个处理器,64MB 到256MB分布共享 主存和共享磁盘 胖超立方体网络, CC-NUMA 微内核Cellular IRIX Power C, Power Fortran MPI,PVM 一个大型样机的配置 400个处理器, 100Gflop/s(MHPC C) 1994年9月 67MHz, 267Mflop/s POWER2 1个处理器,64MB 到2GB本地主存, 1GB到14.5GB本地 磁盘 多级网络, NORMA 完全AIX(IBM UNIX) MPI和PVM HPF,Linda
国家高性能计算中心(合肥)
Wisconsin:Wind Tunnel
Chica、Maryl、 Penns:NSCP Argonne:Globus Syracuse:WWVM HKU:Pearl Cluster Virgina:Legion
国家高性能计算中心(合肥)
在经由商用网络互连的工作站机群上实现分布共享存储
国家可扩放机群计划:在通过因特网互连的3个本地机群系 统上进行元计算 在由ATM连接的北美17个站点的WAN上开发元计算平台和 软件 使用因特网和HPCC技术,在世界范围的虚拟机上进行高性 能计算 研究机群在分布式多媒体和金融数字库方面的应用 在国家虚拟计算机设施上开发元计算软件
问题
欠可靠: BUS,OS,SM失效均会造成系统的崩溃 可观的通信延迟(相对于CPU): 竞争会加剧延迟 慢速增加的带宽: MB double/3 year, IOB更慢 不可扩放性(用总线连接)。为此,或改用交叉开关连接,或改用 CC-NUMA,或改用Cluster
国家高性能计算中心(合肥)
D NIC P/C P/C
M
M
MIO LAN D
MIO
问题
通信性能 并行编程环境
NIC
例子:Berkeley NOW,Alpha Farm, FXCOW
国家高性能计算中心(合肥)
2013-6-26
10
典型的机群系统
典型的机群系统特点一览表
名称 Princeton:SHRIMP Karsruhe:Parastation Rice:TreadMarks 系统特点 PC商用组件,通过专用网络接口达到共享虚拟存储,支持 有效通信 用于分布并行处理的有效通信网络和软件开发 软件实现分布共享存储的工作站机群
问世日期 处理器类型
节点体系结构 和数据存储器 互连网络和主存模型 节点操作系统 自然编程机制 其他编程模型
国家高性能计算中心(合肥)
2013-6-26
7
MPP所用的高性能CPU特性比较
属性 工艺 晶体管数 时钟频率 电压 功率 字长 I/O 高速缓存 2级 高速缓存 执行单元 超标量 流水线深 度 SPECint 92 SPECfp 92 SPECint 95 SPECfp 95 其它特性 Pentium Pro BiCMOS 5.5M/15.5M 150MHz 2.9V 20W 32位 8KB/8KB 256KB (多芯片模块 5个单元 ) 3路(Way) 14级 366 283 8.09 6.70 CISC/RISC 混合 PowerPC 602 CMOS 7M 133MHz 3.3V 30W 64位 32KB/32KB 1~128MB (片外) 6个单元 4路 4~8级 225 300 225 300 短流水线长 L1高速缓存 Alpha 21164A CMOS 9.6M 417MHz 2.2V 20W 64位 8KB/8KB 96KB (片上) 4个单元 4路 7~9级 >500 >750 >11 >17 最高时钟频 率最大片上 2级高速缓 存 Ultra SPARC II CMOS 5.4M 200MHz 2.5V 28W 64位 16KB/16KB 16MB (片外) 9个单元 4路 9级 350 550 N/A N/A 多媒体和图 形指令 MIPS R10000 CMOS 6.8M 200MHz 3.3V 30W 64位 32KB/32K B 16MB (片外) 5个单元 4路 5~7级 300 600 7.4 15 MP机群总 线可支持4 个CPU
高性能开关 HPS 多级Ω网络 宽节点、窄节点和窄节点1
高性能开关 ,Omega 网络
国家高性能计算中心(合肥)
2013-6-26
9
工作站机群COW
分布式存储,MIMD,工作站+商用互连网络,每个节点是一个完整的计 算机,有自己的磁盘和操作系统,而MPP中只有微内核 优点:
投资风险小 系统结构灵活 性能/价格比高 能充分利用分散的计算资源 可扩放性好
2013-6-26
3
对称多处理机SMP(1)
SMP: 采用商用微处理器,通常有片上和片外Cache,基于总线连 接,集中式共享存储,UMA结构
例子:SGI Power Challenge, DEC Alpha Server,Dawning 1
P/C P/C
…
SM
2013-6-26
P/C
总线或交叉开关 SM I/O
Multicore Parallel Computing主讲人 徐 云并行计算
并行计算——结构•算法•编程
第一篇 并行计算的基础
第一章 并行计算机系统及其结构模型 第二章 当代并行机系统:SMP、MPP和Cluster 第三章 并行计算性能评测
国家高性能计算中心(合肥)
2013-6-26
国家高性能计算中心(合肥)
4
对称多处理机SMP(2)
优点
对称性: 任何处理器均可访问任何存储单元和I/O设备 单地址空间: 易编程性,动态负载平衡,无需显示数据分配 高速缓存及其一致性: 支持数据的局部性,数据一致性由硬件维持 低通信延迟: 可由简单的Load/Store指令完成
2013-6-26 11
SMP\MPP\机群比较
系统特征 节点数量(N) 节点复杂度 节点间通信 节点操作系统 支持单一系统映像 地址空间 作业调度 网络协议 可用性 性能/价格比 互连网络 SMP O(10) 中粒度或细粒度 共享存储器 1 永远 单一 单一运行队列 非标准 通常较低 一般 总线/交叉开关 2013-6-26 MPP O(100)-O(1000) 细粒度或中粒度 消息传递 或共享变量(有DSM时) N(微内核) 和1个主机OS(单一) 部分 多或单一(有DSM时) 主机上单一运行队列 非标准 低到中 一般 定制 机群 O(100) 中粒度或粗粒度 消息传递 N (希望为同构) 希望 多个 协作多队列 标准或非标准 高可用或容错 高 商用 12