并行程序设计导论
文章平均质量分 89
根据《并行程序设计导论》这本书进行整合和理解
FiOQA Young
这个作者很懒,什么都没留下…
展开
-
第1章:为什么要并行计算
【并行程序设计导论】第1章:为什么要并行计算1.1 为什么需要不断提升性能不断提升的计算能力已经成为许多飞速发展领域(如科学、互联网、娱乐等)的核心力量不满足现状,随着计算能力的提升,我们要考虑的问题也在增加。如气候模拟、蛋白质折叠、药物发现、能源研究、数据分析等。1.2为什么需要构建并行系统因为对于单处理器而言,其性能的提升实际是提高了处理器上晶体管的密度,但受限于散热问题等,密度无法一直提升。如果考虑并行化,即生产多个相对简单的完整处理器放在一个芯片上,即多核处理器,就能解决密度问题。原创 2021-07-08 23:03:42 · 1533 阅读 · 0 评论 -
第2章:并行硬件和并行软件
【并行程序设计导论】第2章:并行硬件和并行软件文章目录【并行程序设计导论】第2章:并行硬件和并行软件2.1 背景知识2.1.1 冯·诺依曼结构2.1.2 进程、 多任务及线程2.2 对冯·诺依曼模型的改进2.2.1 Cache基础知识2.2.2 Cache映射2.2.3 虚拟存储器2.2.4 指令级并行2.2.5 硬件多线程2.3 并行硬件2.3.1 单指令多数据流(SIMD)2.3.2 多指令多数据流(MIMD)2.3.3 互联网络2.3.4 Cache一致性2.4 并行软件2.4.1 注意事项2.4原创 2021-07-09 14:09:27 · 690 阅读 · 0 评论 -
第3章:用MPI 进行分布式内存编程
【并行程序设计导论】第3章:用MPI 进行分布式内存编程文章目录【并行程序设计导论】第3章:用MPI 进行分布式内存编程3.1 预备知识3.2 编译与执行3.3 MPI实现3.3.1 开始与结束:3.3.2 通信子Communicator3.3.3 **点对点通信**3.3.4 集合通信3.3.5 **集合操作通信**3.3.6 MPI派生数据类型3.3.7 **计时**3.1 预备知识现实理解:在多进程程序中,两个进程可以通过调用函数来进行通信:一个进程发送函数,另一个接收函数。我们将使用消息传递原创 2021-07-09 16:02:28 · 1810 阅读 · 0 评论 -
第4章:用Pthreads 进行共享内存编程
【并行程序设计导论】第4章:用Pthreads 进行共享内存编程文章目录【并行程序设计导论】第4章:用Pthreads 进行共享内存编程4.1 预备知识4.2 编译与运行4.3 Pthread实现4.3.1 准备工作4.3.2 启动线程4.3.3 运行线程4.3.4 停止线程4.3.5 示例4.4 矩阵-向量乘法4.5 临界区4.6 忙等待4.7 互斥量(mutex)4.8 生产者-消费者同步和信号量(semaphore)4.9 路障(barrier)和条件变量(conditional variable原创 2021-07-09 16:18:10 · 1260 阅读 · 0 评论 -
第5章:用OpenMP 进行共享内存编程
【并行程序设计导论】第5章:用OpenMP 进行共享内存编程文章目录【并行程序设计导论】第5章:用OpenMP 进行共享内存编程5.1 预备知识5.2 编译与执行5.3 编译制导5.4 API函数5.5 openMP实现5.5.1 程序5.5.2 变量作用域5.5.3 规约子句5.5.4 parallel for 指令5.5.5 循环调度5.6 生产者和消费者问题5.1 预备知识OpenMP 提供“基于指令”的共享内存API 。在C和C++中,预处理器指令以 #pragma 开头。通常,我们把原创 2021-07-09 16:27:33 · 1327 阅读 · 1 评论