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

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



