并行编程模型与数组数据分布全解析
1. 元组空间操作与显式通信同步编程模型
在并行编程领域,元组空间操作是一种重要的概念。元组空间操作主要包含以下几种:
- in :从元组空间读取并移除一个元组。
- read :从元组空间读取一个元组,但不将其移除。
- out :向元组空间写入一个元组。
要从元组空间中检索元组,需要为部分数据字段指定所需的值,这些值会被解释为键。对于分布式地址空间,元组空间的访问操作必须通过涉及的进程之间的通信操作来实现。例如,在一个 Linda 程序中,如果进程 A 向元组空间写入一个元组,之后该元组被进程 B 检索,那么就必须生成一个从进程 A(发送)到进程 B(接收)的通信操作。不过,根据执行平台的不同,这种通信可能会产生大量的开销。除了 Linda,基于元组空间的其他方法还包括 IBM 的 TSpaces 和 Java Jini 技术中的 JavaSpaces。
显式通信和同步编程模型要求程序员指定并行执行的所有细节,包括所需的通信和同步操作。这种模型的优点是可以使用标准编译器,并且程序员能够明确控制并行执行的所有细节,通常可以提供高效的并行程序。但缺点是程序开发需要大量的工作。属于这一类的编程模型有消息传递模型(如 MPI)和基于线程的模型(如 Pthreads)。
2. 并行编程模式
并行程序由一系列任务组成,这些任务由多个处理器上的进程或线程执行。为了构建并行程序,可以使用多种组织形式,这些形式可以通过特定的编程模式来体现。以下是一些常见的并行编程模式:
超级会员免费看
订阅专栏 解锁全文
3767

被折叠的 条评论
为什么被折叠?



