并行软件

在运行共享内存系统时,会启动一个单独的进程,然后派生出多个线程。所以我们讨论共享内存系统时,我们指的是正在执行任务的线程。

另一方面,当我们运行分布式内存系统时,我们使用的是多个处理器,所有我们指的是执行任务的进程。

 

共享内存

在共享内存程序中,变量可以是共享的,也可以是私有的。
线程之间应该怎样通信?
---->线程之间通过共享变量进行通信-通信是隐式的。

 

动态线程
-主线程等待工作派生新线程,当线程完成时,它们终止
-高效使用资源,但线程的创建和终止是耗时的。
静态线程
创建并分配工作的线程池,但在清除之前不终止
性能更好,但可能会浪费系统资源。

 

非确定性,由于同时对某个共享变量进行操作导致的。---->使用互斥锁或者忙等待,信号量等方式对临界区进行处理。

 

并行程序设计

Foster方法

(1)划分

(2)通信

(3)凝聚或聚合

(4)分配

 

posted @ 2020-05-14 09:44  caishunzhe  阅读(295)  评论(0编辑  收藏  举报