并行计算基础知识-学习笔记

朱治龙
2022-04-07 / 0 评论 / 26 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年04月07日,已超过1007天没有更新,若内容或图片失效,请留言反馈。

为什么会有并行计算?

并行计算的必要性,现实世界计算需求与日俱增,对工期、规模有非常大的要求,并行计算可以非常好的提供计算能力
l1onp5x5.png

  • 汽车制造。设计制造领域,用于模拟
  • 分子模拟。微观领域不好现实观察
  • 石油勘探。通过数据推演,大概模拟地下储存情况
  • 数学建模。股市预测等

处理器发展趋势-并行化

l1onrsid.png

功耗墙

l1onxr6w.png

现代计算机体系架构下的并行化

体系架构选择、优化成本(制造与功耗)与性能

  • 指令级并行(ILP)

    • 流水线(Pipelining)
    • 多指令发射
    • 乱序执行
  • 向量化(SIMD)

    • 单条指令执行能够同时处理多个数据片
  • 多线程(MIMD)

    • 多个程序实例能同时运行
  • 多核

CPU发展架构的巨大转变

l1oo2fce.png

并行化

l1oo34us.png

线程与进程

  • 线程与进程是抽象的概念,对应的物理概念是CPU核心
  • 每个线程或进程都至少对应一个CPU物理核心
  • 进程是 资源分配 的最小单位
  • 线程是 CPU调度 的最小单位
  • 线程比进程粒度更小
  • 一个进程可以拥有多个线程

举例

假设要吃完一盆米饭,多进程是每人一个碗 一起吃这盆米饭,多线程相当于多个人共用一个碗起吃这盆米饭,多线程 相当于多个人 共用一个碗 一起吃这盆米饭

  • 多进程时,碗(进程)和碗之间是独立的、互不影响的
  • 多线程时,每个人共享个碗的资源
  • 看起来多进程永远好于多线程
  • 但是如果加上这样的条件

    • 每个人穿不同颜色的衣服,米饭也分不同的种类,大米、小米、紫米....,规定什么颜色的衣服只能吃什么颜色米,但是盛饭的时候不知道盛到碗里的是什么米
    • 需要盛上来之后,各个颜色的人、碗互相沟通归类数据

导致:人越多、碗越多,花在沟通上的时间越长,干正事吃饭的时间越短

结论:现实情况并不一定多进程是永远好于多线程的,有的时候需要将多进程和多线程结合起来使用。

多进程:进程和进程之间是互相独立的

多线程:线程和线程之间是共享一个进程的资源

多线程程序

  • OpenMP、pthreads、TBB......
  • 已被各编译器按收作为基本编程规则,常用编译器都支持

多进程程序

  • 使用MPI技术编程
  • MPI本身是开放的编程接口,各厂商有自己的版本

    • Intel MPI (白建超算推荐,无论什么程序优先使用,除非明确无法使月)
    • 天河MPICH3 (广州/长沙超算推荐)
    • OpenMPI (Intel MPI不可用时备选)
    • MPICH (禁用,无法使用高速网)

有些程序只有多进程并行

  • MS、OpenFOAM

有些程序只有多线程并行

  • Gaussian

有些程序支持多进程和多线程混合并行

  • VASP、 WRF......

除只支持多线程的程序及用户特殊要求外,给用户测试交付时默认纯多进程并行

CPU利用率

  • 运行程序占用的CPU资源的比率
  • 操作系统级别统计,分为用户态和内核态
  • 直观反映CPU的繁忙程度
    l1op0yn2.png

内存使用率

使用的内存超过节点内存,作业会报错退出
l1op3804.png

网络

  • 高速网

    • Infiniband/Ominipath/天河
    • 自建超算都使用Infiniband高速网,速度相比以太网提升10倍以上
    • 编译和安装软件注意MPI环境使用
0

评论 (0)

取消