栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

并行程序设计导论 Peter S. Pacheco 第一章 摘录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

并行程序设计导论 Peter S. Pacheco 第一章 摘录

1.3 为什么需要编写并行程序 

        大多数位传统单核系统编写的程序无法利用多核处理器。

1.4 如何编写并行程序

        有两种广泛采用的方法:任务并行和数据并行。

        任务并行是指:将待解决问题所需要执行的各个任务分配到各个核上执行。

        数据并行是指:将待解决问题所需要处理的数据分配到各个核,每个核在分配的数据集上执行大致相似的操作。

        在计算全局求总和的例子中:

        协调过程包括通信:一个或多个核将自己的部分和结果发送给其他核;

        协调工作也反映了负载平衡:希望给每个核分配大致相同数目的数据来计算。

        协调工作也包括同步:在大多数系统中,核之间不会自动地同步,而是每个核在自己地空间中工作。比如在master核初始化完x数组并使其他数组能够被其他核访问之前,不希望其他核开始工作。

1.5 将做什么

        学会C语言三个扩展:消息传递接口(Message Passage Interface, MPI),POSIX线程(POSIX threads),(OpenMP)。

        关注两种主要地并行系统:共享内存系统和分布式内存系统。

        在共享内存系统中,各个核能够共享访问计算机的内存,理论上每个核能够读、写内存的所有区域。因此可以通过检测和更新共享内存中的数据来协调各个核。

        在分布式内存系统中,每个核都拥有自己的私有内存,核之间的通信时显示的,必须使用类似于网络中发送消息的机制。

        Pthreads和openMP是为共享内存系统的编程而设计的,它们提供访问共享内存的机制。

MPI是为分布式系统的编程而设计的,它提供发送消息的机制。

1.6 并发、并行、分布式

        并发计算(cocurrent computing): 一个程序的多个任务在同一个时段内可以同时执行。

        并行计算(parallel computing): 一个程序通过多个任务紧密协作来解决问题。

        分布式计算(dostributed computing): 一个程序需要和其他程序协作来解决问题。

        在并行程序和分布式程序之间没有一条明确的分界线,但是并行程序往往同时在多个核上执行多个任务,这些核在物理上紧密靠近,或者共享内存或者通过告诉网络相互连接。

        分布式程序往往更加”松耦合“。任务是在多个计算机上执行。这些计算机之间相隔较远并且任务是由独立创建的程序来完成的。

1.10 小结

        在编写并行程序时,我们需要协调各个核的工作。这涉及核之间的通信、负载平衡和同步。

        MPI用于分布式内存系统的编程。

        Pthreads和OpenMP用于共享内存系统编程。

        在分布式系统中,每个核都拥有自己的私有内存,而在共享内存系统中,原则上每个核能访问每个内存区域。

        并发程序是指多个任务在一段时间内同时执行。

        并行程序核分布式程序的多个任务能在同一时刻一起执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号