并行计算基础¶
约 1128 个字 1 张图片 预计阅读时间 4 分钟
培训简介
- 培训目标:了解并行计算基本概念,掌握不同并行架构的基本代码编写。
- 培训内容:并行计算基础、OMP入门、MPI入门、向量化知识。
- 预备知识:能无痛阅读C语言代码、并知道C语言中的基本概念。能够区分CPU、核心、内存等基本计算机概念。
一些提醒
- 本章节的选学自学内容或很简单或很难,为了文档完整性将其列出。学习他们需要自行信息检索,可以参考人工智能和搜索引擎的回答与文档中所列出来的链接。
- 本章节所列举内容为常用内容,详细信息请参考链接和官方手册。
并行计算基础¶
参考链接:
- 并行计算(CSDN介绍)
- 介绍原文(英文)(推荐阅读)
-
什么是并行计算
并行计算是一种通过将任务分解为多个子任务并同时在多个处理器或计算节点上执行的计算方式。它的主要目标是提高计算速度和效率,解决那些单一处理器难以快速处理的大规模问题。简而言之就是充分动用服务器硬件资源,将很大计算量的问题分解给不同的核心完成一部分,最终所有核心协作完成所有任务,以起到加速程序运行的效果。
并行计算的核心内容:计算任务分解、内存访问模型、并行单元间的通信。
-
并行计算的基本概念
-
并行性与并发性:并行(parallel)和并发(concurrency)的区别和联系_并行与并发的区别和联系-CSDN博客
并行性(Parallelism)
并行性指的是多个任务在同一时间同时执行。并行性通常依赖于多核或多处理器系统,在物理上允许多个任务在不同的处理器或计算核心上并行运行。
- 关键点:实际同时执行多个任务。
- 硬件要求:需要多核处理器或多个处理器。
- 示例:边洗澡边听歌
并发性(Concurrency)
并发性指的是多个任务在系统中交替进行,但这些任务并不一定同时运行。并发性侧重于任务之间的逻辑交替,而非物理上的同时运行。操作系统通过任务调度器快速切换任务,使它们看起来好像是同时运行的,虽然它们实际上在不同的时间片被执行。
- 关键点:多个任务在逻辑上交替进行,但不一定是同时执行的。
- 硬件要求:单核处理器也能支持并发,因为并发主要依赖于操作系统的任务调度机制。
- 示例:边玩手机边看电视
-
任务划分
负载均衡:确保任务均匀地分配到所有处理器或核心,避免某些处理器过载而其他处理器闲置。
任务粒度:选择适当的任务粒度,以平衡任务的管理开销和计算效率。粒度过细可能导致管理开销过高,粒度过粗可能导致负载不均。
通信开销:尽量减少处理器之间的数据交换,优化数据局部性,以降低通信开销。
同步开销:减少不同任务之间的同步需求,避免不必要的等待和阻塞。
可扩展性:确保任务划分策略能够适应处理器数量的增加,保持系统性能的可扩展性。
-
并行架构(共享内存与分布式内存)
共享内存架构(对应OpenMP):所有处理器共享同一块物理内存。处理器可以直接访问和修改共享的数据。数据共享和同步机制较为直接,不需要显式通信操作。
分布式内存架构(对应MPI):每个处理器或计算节点有独立的内存空间。处理器之间通过消息传递进行数据交换。数据交换和通信需要显式管理。
-