《并行程序设计导论》读书笔记( chapter1 )

why ?

为什么要编写并行程序与构建并行系统
The answer:单处理器的性能具有瓶颈,内部原因是因为晶体管的密度不可能无限制的增大,外部原因是因为密度增大,处理器的散热就是一个很大的问题,过于高的温度会影响性能。

how ?

Two methods:任务并行与数据并行
在这里,用一个简单的例子来说明任务并行与数据并行之间的区别:现在有一个教授P,然后他的手下有4个助教(A,B,C,D),期末考试参加的学生有100个,然后改卷子,卷子一共有5道题目。
首先,我们可以将教授以及他手下的主教5人看作是5个核,然后,如果每一个核负责改卷子上的某一道题目,那么这样就属于任务并行(总共有5个任务,一个核一个)。另外一个想法就是一个核负责20个学生的卷子,则这就是数据并行(总共100个数据,每一个核20个)。
并行程序的设计过程中,要注意的问题:核之间的通信,负载平衡,同步。
功能最强大的并行程序就是通过显式的并行结构来编写,即用扩展C和扩展C++编写。

what should we do ?

三种并行编程的方法:
One : 消息传递接口(Message-Passing Interface MPI)
Two : POSIX线程(POSIX threads Pthreads)
Three : OpenMP
为什么会有三种并行编程的实现方法:因为总的而言,并行系统可以分为2类:其中一类是共享内存系统,另外一种是分布式内存系统。Pthreads以及OpenMP是为了共享内存系统的编程而设计的,而MPI是为了分布式内存系统而设计的。
关于共享内存系统中两种方法的主要区别是:Pthreads是比较底层的然而OpenMP是对C语言相对更高层次的扩展。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值