硕士算法2010_第7章 并行计算基础
并行计算的算法与应用

了解和使用适合特定应用和算法的并行计算模型和框架,如MapReduce、MPI、OpenMP等,可以简化并 行算法的设计和实现过程,并提高算法的性能和可移植性。
03
典型并行算法剖析
矩阵运算并行化方法
矩阵乘法并行化
通过分块矩阵乘法,将大矩阵拆分成 小矩阵,在多个处理单元上并行计算 ,最后合并结果。
将多阶段决策问题拆分成多个子问题,每个子问题可以在 多个处理单元上并行求解,最后合并子问题的解得到原问 题的解。
04
并行计算在科学计算领域 的应用
天气预报模型中的并行计算
01
数据并行处理
对大规模气象数据进行并行处 理,提高数据预处理和模型输
入的效率。
02
模型并行计算
将天气预报模型拆分为多个子 任务,在多个计算节点上并行
执行,加速模型运算过程。
03
结果并行输出
对模型运算结果进行并行处理 和输出,提高天气预报的准确
性和时效性。
油藏数值模拟中的并行技术
网格划分与并行计算
01
对油藏数值模拟的网格进行划分,将计算任务分配到多个计算
节点上并行执行,提高计算效率。
并行求解器设计
02
针对油藏数值模拟中的线性方程组,设计高效的并行求解器,
并行化策略
采用区域分解法或功能分解法将计算域划分为多个子域,在每个子域上进行独立的CFD 模拟,并通过并行通信实现数据交换和同步。
应用案例
在航空航天、汽车工程、能源等领域中,并行CFD技术可用于模拟飞行器气动性能、汽 车空气动力学、风力发电场流场等复杂流动现象。
电磁场仿真中的并行FDTD方法
01
并行FDTD方法的基 本原理
并行算法的设计基础

表示其间的 n (i=1 to n) 次语句序列的执行 可以并行完成
2. for all 语句 for all Pi where 0 i k-1 do : :
end for 2019/11/20
表示 k 个 处理器同时 执行其间的 语句序列 9
3. 并行算法的复杂性度量
令 f(n) 和 g(n) 是定义在自然数集合N 上的两个函数,
2019/11/20
4
定义3:同步算法(synchronized algorithm):是指算 法的诸进程的执行必须相互等待的一类并行算法。 SIMD算法是同步算法中的一种特例。
定义4:异步算法(asynchronous algorithm):是指算 法的诸进程的执行不必相互等待的一类并行算法。
定义5:分布并行算法(distributed algorithm):将 同一任务分解为若干个子任务,使之分布在由通信 链路连接的多个节点上协同完成运算的算法。
定义12:一个并行算法的期望时间复杂性 ( expected time-complexity ) :对于所有输入 规模为 n 的问题,在给定的计算模型之下求解问 题所需的时间的平均值。
2019/11/20
15
定义13:一个并行算法最坏情况下的空间复杂性 (worst-case space-complexity) :对于所有输 入规模为 n 的问题,在给定的并行计算模型之下 求解问题所需的内存空间的最大值。
22
我们把 A 按列分为 p 个 n*r 的小矩阵A1 , A2 ,… , Ap 把 X 按行分为 p 个 r*1 的小向量X1 , X2 ,… , Xp
A = A1 A2 …
Ap
(n*r) (n*r)
高性能计算中的并行算法和优化问题

高性能计算中的并行算法和优化问题高性能计算(High Performance Computing,HPC)是一种运用计算机科学和工程学的知识,通过利用大规模并行计算系统实现高速计算的一种技术。
在高性能计算中,算法的效率是提高计算速度的关键因素之一。
然而,现实中往往存在许多性能瓶颈,需要通过优化算法来实现高速计算。
一、并行算法并行算法是指在多台计算机上同时执行的算法。
相对于串行算法而言,其具有计算效率高、计算速度快等优点。
在高性能计算中,使用并行算法可以提高计算速度,同时可以更好地利用计算资源。
1.1 MPI程序设计MPI(Message Passing Interface)是一种消息传递编程接口,可用于编写并行程序。
MPI程序的基本思路是将问题分解成多个子问题,然后分发给不同的计算机节点并行处理。
MPI程序设计要注意以下几点:(1)通信代价大的操作要尽量减少,尽量选择更加通用的算法,将通信操作次数降至最低。
(2)提高计算并行度,尽可能多地利用长时间闲置的处理器。
(3)尽可能采用异步通信,减少等待时间。
(4)有效地利用MPI的一些高级功能,如非阻塞和缓存异步通信等。
1.2 OpenMP程序设计OpenMP是一种用于共享内存多处理器系统的低级别编程接口。
使用OpenMP可以更好地利用多处理器系统进行并行计算,具体包括以下几点:(1)将问题分解成可以并行处理的任务,使用OpenMP的并发指令集并行执行。
(2)提高程序的并行性,尽可能减少同步和内存操作的使用。
(3)使用OpenMP的并发原语,如sections、task等来实现并行化。
1.3 CUDA程序设计CUDA是一种并行计算平台和编程模型,可用于编写高性能计算应用程序。
CUDA程序设计的核心思想是通过CUDA程序来调用GPU的并行计算能力,同时尽可能利用多核CPU并行处理。
具体注意事项如下:(1)尽可能多利用GPU的并行计算能力,合理使用GPU层次结构。
并行计算讲义

并行计算讲义Last revision on 21 December 2020燕山大学课程讲义并行计算导论授课人:郭栋梁学时:32学时其中实验课:8学时三级项目:16学时第1章引言概述单处理器计算机即将成为过时的概念.我们需要考虑如下因素来着手改进提高计算机的性能:(1)单纯依靠单处理器很难提升现有计算机的性能.即使有一个性能十分强大的单处理器,其功耗也让人无法接受.想要提升计算机的性能,更加可行的方法是同时使用多个简单处理器,它所能达到的性能可能是现有单处理器计算机性能的几千倍。
(2)观察结果显示,除非使用并行处理技术,一个程序在一台型号更新的单处理器计算机上的运行速度,可能比在旧的计算机上的运行速度更慢。
能依照给定算法检测出程序中的并行结构的编程工具还有待开发。
此算法需要能够检测出变ja之间的依赖关系是否规则;而且不管这些依赖是否规则,此算法都能在保证程序正确性的前提下,通过将程序中的一些子任务并行化来加速程序的执行。
(3)提升未来的计算机性能的关键就在于并行程序的开发,这涉及各个层面的工作:算法、程序开发、操作系统、编译器及硬件设备。
(4)并行计算除了要考虑到参与并行计算的处理器的数量,还应该考虑处理器与处理器、处理器与内存之间的通信。
最终计算性能的提升既依赖于算法能够提升的空间,更依赖于处理器执行算法的效率。
而通信性能的提升则依赖于处理器对数据的供应和提取的速度。
(5)内存系统的速度始终比处理器慢,而且由于一次只能进行单个字的读写操作,内存系统的带宽也有限制。
(6)内存系统的速度始终比处理器慢,而且由于一次只能进行单个字的读写操作,内存系统的带宽也有限制。
本书内容主要涉及并行算法与为了实现这些算法而设计的硬件结构。
硬件和软件是相互影响的,任何软件的最终运行环境是由处理器组成的底层硬件设备和相应的操作系统组成.我们在本章开始的部分会介绍一些概念,之后再来讨论为了实现这些概念有哪些方法和限制.自动并行编程对于算法在软件中的实现过程我们都很熟悉。
并行计算习题(全)

第二章 习题例题:
1.
当代并行计算机系统介绍
请尽可能访问以下有关高性能并行计算的网址: IEEE/CS ParaScope (/parascope/),world-wide parallel computing sites High Performance Computing Lists (/homes/mcbryan/public_html/bb/2/summary.html) The Language List (http://cuiwww.unige.ch/langlist) enumerate programming languages TOP 500 (/benchmark/top500.html) World's TOP 500 most powerful computing sites (at Netlib,University of Tennessee) Myrinet () DSM bibliography (http://www.cs.ualberta.ca/~rasit/dsmbiblio.html) Berkeley Active Message page (/AM/active_messages.html) The Cray Research system page (/products/systems/) SGI/Cray Origin 2000 (/Products/hardware/servers/index.html) Cray T3E (/products/systems/crayt3e/) PetaFLOPS web site (/hpcc/) NASA HPCC Program (/hpcc/) Cray T3E (/products/systems/crayt3e/) IBM SP (/hardware/largescale/) Intel Paragon (/Services/ Consult/Paragon/paragon.html) Kai Li (/~li/) SP2 at MHPCC (/doc/SP2.general/SP2.general.html) MPI Standard site (/mpi/index.html) MIT Parallel and Distributed Operating Systems Group (/). National Center for Supercomputer Applications at UIUC (NCSA) (/) Cornell Theory Center (CTC) (/ctc.html) Argonne Natl Laboratory,Mathematics & Computer Science Div. (/) Army Research Lab (/) Lawrence Livermore National Laboratory (/comp/comp.html) Los Alamos Natl Laboratory (LANL) Advanced Computing Laboratory (/). Maui High Performance Computing Center (MHPCC) (/mhpcc.html) San Diego Supercomputer Center (/SDSCHome.html) Sandia National Laboratories (/) Massively Parallel Comp. Res. Lab. Parallel Processing in Japan (/papers/ppij.html) Cray Research (/) IBM High-Performance Computing (/) ParaSoft Corporation (/)
并行计算

VS2010中Parallel类实现并行计算本文来自IT168网站作者:陈良乔在本系列的第一篇文章“Visual Studio 2010对并行计算的支持”中,我们简要地介绍了微软为并行计算提供了完整的解决方案。
如果你是一个.NET程序员,同时又在进行并行计算方面的开发,那么即将发布的.NET Framework 4.0将是微软送给你的一份大礼。
在.NET Framework 4.0中,在库的层次上,微软提供了大量的新内容来帮助程序员完成应用程序的并行化,其中包括Parallel LINQ(PLINQ),Task Parallel Library(TPL)和Coordination Data Structures。
这里我们就先来介绍一下最简单最常用的TPL。
将跟随Visual Studio 2010一起发布的.NET Framework 4.0将包含很多基于库的对并行计算的支持。
包括数据的并行化,任务的并行化等等,这一切都通过一个共同的工作调度器进行管理。
这些新的类型和类,将在System.Threading,System.Threading.Tasks,System.Linq,和System.Collections.Concurrent这些名字空间中提供。
通过这些新的类型和类,开发人员将无需面对如今复杂的多线程开发模式,而可以直接使用.NET Framework,更加高效简便地开发支持并行计算的应用程序,从而更加充分地利用多核CPU的优势,随着计算核心或者处理器的增加,以提升应用程序的性能。
而在.NET Framework中,Task Parallel Library (TPL)是其Parallel Extensions中一个重要组成部分,它提供了一种简便的多线程开发方式,通过它所提供的类或者函数,可以让程序员轻松地实现并行计算。
其中,最简单的就是它的Parallel类Parallel类Parallel类就是TPL中的一个用于支持并行计算的类。
并行计算概述课件
2020/6/25
4
并行计算
▪ 并行计算:并行机上所作的计算,又称高性能计算或超级计 算。
▪ 三大学科:计算科学,理论科学和实验科学 所有的学科都转向定量化和精确化。 计算科学是一个交叉学科,用计算的方法来解决应用问题。 适用于理论模型复杂或尚未建立,实验费用昂贵或无法进行
▪ 计算科学:计算物理、计算化学、计算生物学等 ▪ 科学与工程问题的需求:气象预报、油藏模拟、核武器数值
模拟、航天器设计、基因测序等。 ▪ 需求类型:计算密集、数据密集、网络密集。
2020/6/25
5
2020/6/25
6
2020/6/25
7
并行计算
▪ 美国HPCC计划:高性能计算和通信,重大挑战 性课题,3T性能
▪ 中国联想: 1Tflops,Top43,2002
2020/6/25
14
系统互连
▪ 不同带宽与距离的互连技术: 总线、SAN、LAN、MAN、WAN
100 Gb/s
MIN 或 交叉开关
10 Gb/s
局部总线 SCI
HiPPI
网络带宽
1 Gb/s
Myrinet 千兆位 以太网
100
I/O 总线
光纤 通道
▪ 美国Petaflops研究项目:Pflop/s。 ▪ 美国ASCI计划:加速战略计算创新,核武器数
值模拟。高性能
2020/6/25
8
2020/6/25
9
2020/6/25
10
2020/6/25
11
2020/6/25
12
2020/6/25
13
Visual C++ 2010 新特性:并行计算
Visual C++2010新特性:并行计算【IT168专稿】性能,永远是程序员要考虑的问题。
在单核时代,甚至在双核(多核)时代,一般是通过改善客户使用的计算机性能来提升程序的性能,如增加服务器、内存,配置负载均衡等手段来实现,我们称这个过程为享受性能免费大餐。
天下没有免费的午餐,性能免费大餐也不能毫无止境,实际上,已经有了新的解决方案--并行计算。
并行计算就像是一道饕餮大餐而被人津津乐道,在本文中我们以烹饪为类比,通过对性能免费大餐的分析,使用Visual Studio C++2010这把利器,应用并行编程模型大块朵颐的进行并行开发。
性能免费大餐已经结束通过提升CPU的计算能力,确实能够改善应用程序性能。
但在实际情况中,无论处理器性能提升多少,软件都有办法迅速吞噬。
况且,计算机硬件毕竟受物理极限的约束,处理器主频的提升已经遇到了瓶颈。
所以,享受性能免费大餐的日子已经结束,业界已经不能提供指数级增长的更快的处理器,而只能选择提供指数级增长的更多的处理器。
多核将引领软件研发发生基础性的变化。
目前的电脑市场上,多核计算机的销量远远大于单核计算机,多核已经成为了一种主流。
在这样的发展趋势下,如果把在单核下实现的应用程序拿到一台64核的机器上运行,你会看到任务管理器显示如下的画面——只有1/64的计算能力得到了利用:图1任务管理器显示64核机器上运行单线程应用程序,只有一个核在计算通过上面的示例可以看出,传统的应用程序再也无法顺其自然地在更高端的硬件设备上获得更高的性能回报,能够充分发挥硬件设备性能的应用程序是未来软件开发的主流,作为开发人员,我们面临的抉择是什么呢?Herb Sutter在他的原文中明确地给出了答案:并行计算。
如果在四年前说“并发将是软件开发史上的又一个重大变革”是一个预测,那么今天,并行计算已经成为软件开发的核心趋势之一。
对于程序员来说,享受免费大餐的日子结束后,只能亲自下厨烹饪。
亲自下厨遇到了难题我们都知道,应用程序的开发,有着完整的生命周期管理,从编写需求说明书、程序设计说明书,到编码、调试和性能优化,再到测试、发布,以及后期维护等一系列的行为都有其复杂性。
并行与分布式计算基础知识入门
并行与分布式计算基础知识入门在当今的信息时代,计算机技术扮演着举足轻重的角色。
并行与分布式计算是其中两个重要的概念。
本文将介绍并行与分布式计算的基础知识,包括概念、应用领域和关键技术。
一、概念简介1. 并行计算并行计算是指多个计算任务同时进行,在同一时刻利用多个处理器或计算机的计算能力来解决大问题的计算过程。
与串行计算相比,它能够显著提高计算速度和效率。
2. 分布式计算分布式计算是指将一个计算任务分解为多个子任务,分配给多台计算机进行并行处理,各自计算结果再汇总得到最终的计算结果。
与单机计算相比,分布式计算能够提高计算能力和可靠性。
二、应用领域1. 科学计算并行与分布式计算在科学计算领域有着广泛的应用。
例如,在气象预报中,利用并行计算可以加快模拟和预测的速度,提高天气预报的准确性。
在生物信息学中,利用分布式计算可以加快基因测序和分析的速度,促进生物医学研究的进展。
2. 大数据处理随着互联网的迅猛发展,大数据成为了一种珍贵的资源。
并行与分布式计算在大数据处理中起到了重要的作用。
通过将数据分布到不同的计算节点上,并行计算可以高效地处理大规模数据集,提供实时的数据分析和挖掘结果。
3. 人工智能人工智能是当前热门的领域之一,而并行与分布式计算为人工智能的发展提供了强大的支持。
例如,在深度学习中,通过并行计算可以加快神经网络的训练速度,提高模型的准确性。
而分布式计算则可以处理大规模的训练数据和模型参数,促进模型的优化和部署。
三、关键技术1. 并行算法并行算法是实现并行计算的关键。
它将计算任务划分为多个子任务,并通过合理的任务调度和数据交换来实现计算的并行化。
常见的并行算法有并行排序、并行搜索和并行矩阵计算等。
2. 分布式系统分布式系统是实现分布式计算的基础。
它由多个计算节点组成,节点之间通过网络进行通信和数据传输。
分布式系统需要解决通信协议、数据一致性、容错和负载均衡等关键技术问题。
3. 并行编程模型并行编程模型是实现并行与分布式计算的抽象层次。
并行算法笔记
注:部分笔记参照周湖广同志发上来的,有些看不清楚,请额外自己核对。
第一章★ 并行计算机互连网络1、一维线性阵列(参照教材11页)2、网孔连接(Mesh-Connected )将n 个处理器连接成n ×n 的二维网孔结构互连函数 ①正向行连接:)1()(21+=+P P MC 逆向行连接:)1()(21-=-P P MC②正向列连接:)()(2n P P MC n+=+ 逆向列连接:)()(2n P P MC n-=- 其中x mod y=x-y[yx],只有y 为负时,x mod y 才为负。
[x]表示取≤x 的最大整数。
如:[3.12]=3,[-3.12]=-4 例:16个处理器的mesh 结构(p=0~15)正向行:0 1 2 … 14 15逆向行:正向列:逆向列:最后的互连结构:Mesh 结构的通信直径(任意两个处理器之间至多需要的路由数):1-nMesh 特点:规整、扩展性比较好。
不足:处理器之间互连是固定的,缺乏灵活性。
改进Mesh 结构——可重构造的Mesh 结构(Rmesh ),动态构造处理器之间的互连方式。
(教材311页) 3、树结构将n 个处理器连接成一个深度为⎣⎦1log +n 的二叉树结构,互连函数:()⎩⎨⎧+=122P P P TC ⎥⎦⎥⎢⎣⎢-=21n P参考教材13页 图1.10 四级二叉树通信直径:⎣⎦n log 2,特点:树根易成为瓶颈,树结构适用于“淘汰”机制型应用问题的并行处理,主从型的应用。
× mod n ,0≤p ≤n-1该图形请参照周湖广同学的课件变种—×树:同层的兄弟节点处理互连,降低通信直径,减少树根的处理器的负担。
4、树网结构 5、金字塔结构6、超立方结构(Hypercube Connected )将n 个处理器连接成一个超立方结构,处理器编号用二进制表示()0121P P P P P m m --=,n m lg =,互连函数:()取反为对i i m m m m i P P m i P P P P P P P P P P P P P CC ,1~0,01-i i 1i 21011-i i 1i 21-==+--+-- 例:n=16个处理器的超立方结构()()()()()()()()()()()()()()()()()()(),,,,,,,,,,,,,,,,,,,~CC ~CC ~CC 11101111CC 11111110CC 11001101CC 11011100CC 10101011CC 10111010CC 10001001CC 10011000CC 01100111CC 01110110CC 01000101CC 01010100CC 00100011CC 00110010CC 00000001CC 00010000CC 3210000000000000000================超立方通信直径:n lg ,直接互连的两个处理器的编号二进制只有一位不同,路由寻优方式实现容易,扩展性相对较差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
25
消息传递方式
虫孔寻径(wormhole routing):分组被分成更小的固定大 小的数据片(flit)进行传输。分组头负责首先在源节点和 目的节点之间建立连接,数据片再沿着此连接传递。一旦一 个节点开始传送一个分组的第一个flit时,这个节点就必须 等待这个分组的全部的flit都送出后,才能转发其他的分组。 虫孔寻径有点像虚拟直通, 它与存储转发的不同之处在于当通信链路忙时,虫孔寻径并 不缓存整个分组,而只存储一个flit,并且用网络流量控制 机制阻塞该分组的后续flit的传送,让它们保留在传输路径 上的中间节点中。
Shared memory. Distributed memory. Virtual shared memory
7
Shared Memory
Small number of processors which each have access to a global memory store. Communications via write/reads to memory. Simple to program (no explicit communications). Poor scaling due to memory access bottleneck.
19
网格(Mesh)
如果将二维网络的每行每列的头尾都连接起来,就成 了二维环绕网格。环绕网格结合了网格和环的优点。 如果二维环绕网格中,水平节点不是逐行头尾连接, 而是将上下链路头尾连接,就得到了Illiac网络。 搏动阵列是一类为实现特定的算法而设计的多维流水 线阵列结构。图d是完成矩阵相乘而专门设计的搏动阵 列。
10
11
11
12
12
13
13
14
14
并行计算机通信机制 静态网络 动态网络 并行计算机的消息传递方式 互连网络的路由选择
15
线性阵列和环
在线性阵列中,n个节点用n-1条链路连接起来。 线性阵列结构的通信效率很低,而且可靠性差。 将线性阵列的两端点相连就是环,环可以是单 向的,也可以是双向的。双向环因为有两条通 路,所以可靠性比单向环更高。
8
Distributed Memory
Each processor has its own local memory. Processors connected via some interconnect mechanism. Processors communicate via explicit message passing. Local memory access quicker than remote memory access. More scalable than Shared Memory architecture. Similar to the scenario of classrooms in a school. Examples: Meiko Computing Surfaces, IBM SP-1/SP-2, Intel Paragon,Dawning 1000/2000
(a) 网格
(b)二维环绕网格
(c) Illiac网格
(d) 搏动阵列
20
超立方体和带环立方体
n维超立方体由2n个节点组成,节点分布在n维上,每 维有两个节点。(n+1) 维超立方体可以通过两个n 维
超立方体的对应顶点互连得到。 将一个n维立方体的每个节点用n个节点组成的环代替, 就构成了带环n维立方体。
21
交叉开关
交叉开关是一种高带宽网络,它由一组排成网格形状 的开关组成,负责在输入端和输出端之间建立动态连 接.
0 1 存储区 2 3 b-1
开关单元
0 1 处 理 器 2 3 4
p-1
22
多级互连网络
构造大型网络的一种方法是把交叉开关 级联起来,构成多级互连网络
处理器
0 1 第 1 级 p-1 p-1 第 2 级 第 n 级 b-2 b-1
29
Memory Collisions
Four ways to handle the memory collisions
Choose the processor with highest priority Choose a processor at random Add the value written (logical OR) Queue read and queue write (QRQW)
23
多级互连网络
存储区
b b
Ω网络
一种多级互连网络,网络级间采用均匀洗 牌连接。
0 1 2 3 4 5 6 7
第一级 第二级 第三级
24
0 1 2 3 4 5 6 7
0 1
直送
0 1 0 1
上播
0 1
交叉
0 1 0 1
下播
0 1
0 1
消息传递方式
存储转发(Store-and-Forward):消息被封装成分 组来传送。分组是消息传输的基本单位,它带有路 由选择信息、校验信息以及顺序信息等。分组在中 间节点不断地被存储和转发,直到到达目的节点。 目的节点再把分组组装成原来的消息。 在存储转发方式中,中间节点需要足够大的缓冲区 来存储可能出现的最大的分组。
4
Classification of Parallel Architectures
5
SIMD Architecture
Single Instruction Multiple Data. Each processor has its own memory where it keeps its data. Every processor synchronously executes same instructions on its local data. Instructions issued by controller. Processors can communicate with each other. e.g. DAP, CM200
26
路由选择机制
最小化路由:路由选择机制总是选择从源到目的的最短路径。 使用最小化路由选择,有可能会导致一部分网络发生拥塞。 确定性路由( deterministic routing ):确定性路由不使 用任何网络的信息,只根据源和目的做出路由选择; 自适应路由(adaptive routing):自适应路由根据网络的 当前状态进行路由选择。如果网络中存在拥塞,确定性路由 不会作出反应,而自适应路由可以检测到拥塞,并使后续消 息的路由绕过拥塞部分。 维序路由(dimension-ordered routing):维序路由是一种 按维的顺序选择路由的方法,在二维网格中,这种算法称为 XY路由算法,而在超立方体中它称为E 立方体路由算法,E 为超立方体的维数。
28
PRAM models
PRAM models vary according
how they handle write conflicts The models differ in how fast they can solve various problems.
only one processor are allow to write to one particular memory cell at any one step
9
Virtual Shared Memory
Each processor has some local memory. Direct access to remote memory by global address space. Hardware includes support circuitry to deal with remote accesses, allowing very fast communications. Example: Cray T3D
Concurrent Read Exclusive Write (CREW)
Concurrent Read Concurrent Write (CRCW) Algorithm works correctly for CREW
will also works correctly for CRCW but not vice versa
In practice performance depends on the manner in which the problem is divided between the processors. Ideally want a program running on P processors to execute P times faster. Want each processor to perform a similar amount of work, i.e., ensure load balancing.
6
6
MIMD Architecture
Multiple Instruction Multiple Data Several independent processors capable of executing separate programs. Further subdivision on relationship between processors and memory.
算法设计与分析