吾生有涯 学海无涯
析模有界 知识无界

「胡言」白话串并行计算

内容纲要

排了一下午的队,终于轮到我了。

1 典型场景

场景1:

年底有大堆账目需要报销处理,小罗罗的报销流程是这样的:

  • 个人统计账单发票,在财务系统中预约

  • 找上一级部门A领导审核签字画押

  • (重要账目选择项)找上上一级部门B领导审核签字画押

  • 找财务部门C审核签字

  • 财务部门走流程,中间有任何问题都回到流程起点找小罗罗

存在的问题:

  • 个人没整利索,A不签字

  • A不签字,B不签字

  • B不签字,C拒收

这是典型的事务串行处理流程。

场景2:

部门要举行年终庆典,繁琐的准备工作落到了部门头头A的头上。A领到任务一看,自觉一个人三个月也完不成这事儿,好在A手下有人手众多,因此A将任务分解:

  • B负责联系场地

  • C负责联系参会人员

  • D负责采购纪念品

  • E负责策划庆典

  • A负责回家听消息

整个过程相对顺利,A只是协调了一下B和E之间的意见冲突而已。

这是典型的事务并行处理流程。

2 特点

串行计算:

  • 将大任务分解成多道工序,前面的工序没完成,后面所有工作都得老老实实等着。

  • 实施起来简单,不需要额外的进行规划,按事务正常的完成路径走即可

  • 每一道工序都有明确的输入和输出

  • 工序之间无法交流沟通,容易走偏,只能通过严格检查每一道工序的输入输出来保证质量

  • 下一道工序负责审核上一道工序的结果

  • 安全程度高,事情还没开干,就已经知道最终的结果会怎样

  • 效率低,如果中间某道工序非常耗时,那整个工期都会延长

并行计算:

  • 将大任务分解成多个小任务,确保小任务之间耦合度最低

  • 每个小任务都有自己的输入和输出

  • 所有小任务同时开工

  • 通常需要选择一名队长,负责小任务计算结果的收集及信息交流

  • 小任务之间存在交流与沟通,通常不太容易走岔路

  • 安全程度低,在事情没完成之前,你不知道最终的结果会偏离预期多远

  • 效率高,不仅计算会消耗计算资源,任务间的沟通交流同样需要消耗计算资源

3 CPU与GPU

近年来GPU加速计算很火热,尤其在数据处理、人工质量等领域,仿佛没有GPU就没法开展工作一样。GPU在显卡中,在以前GPU主要负责图形处理和图形输出,不过近年来GPU并行处理算法不断成熟,很多的CAE软件中也都加入了GPU加速功能。

CPU的内核数量比较少,我们常见的单颗CPU通常为4核、6核、8核、16核,再土豪也不过数十核心。而GPU不同,像普通的台式机显卡GTX1060都拥有GPU核心1280个。

CPU内核数量比较少,擅长一些逻辑运算,有高速缓存,可以提高数据访问的速度。GPU接受来自CPU的指令,有大量的内核,而且是并行计算的,能够完成大规模的数值运算。

虽然CPU的内核少,但每个内核的性能要远强于GPU的内核。前者每个内核都是精英,后者采用的是人海战术,三个臭皮匠顶个诸葛亮。

CPU和GPU有着不同的分工,无法相互替代。CPU更擅长分支预测,而GPU擅长大量数据运算。

NVDIA的官网中,有个很形象的视频来对比CPU和GPU的区别,非常有趣,也很经典。

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《「胡言」白话串并行计算》
文章链接:https://www.topcfd.cn/10957/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册