并行研究--更新

1消息传递原则

作为一个程序员,你会发现你需要解决更大,更多内存的集约问题,或在一系列计算机上以更快的速度简单地解决问题。你可以转向并行编程和并行计算机来满足这些需求。在并行计算机上采用并行程序设计方法使你获得更大的内存和中央处理器(CPU)资源。由此,你就能快速解决更多的问题,包括那些平时不能解决的。

 

一个基本的并行程序编程方法就是使用信息传递库。这些库管理并行程序运行(通常)在多个处理器并行计算架构上的实例之间的数据传输。

 

下面主要讨论
  并行计算机的基本架构。
  域和功能分解的区别。
  数据并行与消息传递模型的区别。
  简述并行程序设计问题。

1.1.并行架构
并行计算机有两种构架:分布式存储和共享式存储.

分布式存储并行计算机本质上就是一系列计算机(节点)为了解决一个问题在一起工作,每一个节点都有快速访问自己本地存储和通过一些共享通信网络(通常是通过一个专有的高速通信网络)访问其他节点。数据在节点之间以消息的方式进行交换。

而在一个共享内存的计算机,多处理器单位通过高速存储总线访问一个全局性的内存空间。这种全局性的内存空间允许
处理器有效交流和共享数据存取。通常,用于共享内存架构的处理器的数量一般限制少数存储器(2-16个)。这是由于大量的数据处理局限于链接处理器的内存总线的带宽。

最新一代的并行计算机使用混合共享/分布存储结构。每个节点包含一组2 - 16处理器,这些处理器链接到每一个本地共享内存。然后多个节点轮回的链接到每一个高速交换网络上。

1.2 问题分解
  第一步,在设计一种并行算法来把问题分解成小问题。然后,小问题被分配到处理器同时进行。大致来说,有两种分解。
  1。域分解,
  2。功能分解,
  这些讨论以下两个部分。

1.2.1. 域分解
在区域分解或“数据并行”,数据分为相近尺寸的块,然后映射到不同的处理器。每个处理器只处理适用于它的部分数据。这个过程可能需要处理器周期性地交流来交换数据。

数据并行的优势在于维持一个单一的流控制。一个数据并行算法由一个序列的基本指令应用到数据:一个指令只有在先前的指令结束后才会初始化。单程序多数据(SPMD)跟这个模型是相同的,代码只是识别在所有的处理器上。 

这种策略一般部署在有限差分算法里,也就是处理器可以独立运行在大数据,每次循环中更多的小边缘数据的交流上。例如用并行解决泊松分布方程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值