【小白的CFD之旅】23 串行与并行
夏日的早晨,被酷热和蚊子骚扰了一夜的小白刚进入梦乡就被老蓝的电话给惊醒了。
“8点开会!”老蓝说话永远那么简短有力,根本不给人请假的时间就挂了电话。
小白一看时间,都7点半了,得,这懒觉睡不成了。小白跳下床,洗漱完毕往实验室奔去。
到了实验室才发现大伙儿已经早就到齐了,小白找了张椅子挨着小牛师兄坐下,发现小牛师兄满眼血丝,还在打盹儿。
“今天召集大家来呢,主要是因为负责项目的小秦毕业了,但这项目还没完成,需要安排一下人手,小牛是总负责,你来讲一下。”老蓝扫了众人一眼后说道。
小牛师兄站起身,走到投影仪前将要做的项目内容详细的介绍了一遍,小白第一次参加这种会议,只感觉小牛师兄的逻辑很清晰。
“现在这项目需要补充两个人,我觉得小白不错,这阵子学得挺快。还需要再找个人,小陈要不要参加?”小牛师兄说。
小陈名字叫陈曦,和小白同一年进入实验室,是个很有意思的小女生,长得很萌,之前一直在学习有限元仿真计算。
“嗯,可以啊,不过我学的是固体计算,不知道后面用不用得上。”陈曦说。
“后面肯定要用到的,你和小白合作,争取尽快把项目接过来,趁那帮研三的还没离校尽快上手”小牛师兄说道。
“还有个问题,咱们实验室的工作站需要升级了,需要加CPU和内存,后期我们采用并行计算加快进度。”小牛师兄对老蓝说。
“嗯,这个我来解决,你回头把型号和数量统计给我就行。没其他问题的话我们就到这里吧。”老蓝说道。
并行效率
会很快开完了,小白与众人一起返回实验室。
”师兄,前两天在网上看到个消息,说世界排名第一的超级计算机在中国,拥有几百万个CPU呢。“小白碰到小牛师兄说。
“没错,的确是在中国,咱们国家的超级计算机还是比较强的,不过俺们老百姓用不起啊。”小牛师兄说。
“CPU越多算的越快么?”小白问道。
“我们可以把CPU看做是一个个的人,那你觉得相同的一件事情,是人越多做得越快么?”小牛师兄反问道。
“这肯定不是噢,有的时候人多反而效率越低,比如说一个和尚跳水吃,两个和尚抬水吃,三个和尚没水吃。”小白说。
“就是这个理啊,CPU多了也是这样,并非CPU越多计算速度和效率越高,有时候反而下降。”小牛师兄说。
并行机制
“多个CPU到底如何同时工作的呢?”小白问。
“呃,这事情说起来其实有点儿复杂,如果你有兴趣的话,可以找一本并行程序设计的书看看。不过我们可以简单的八一八。”小牛师兄说。
“前面说过,我们可以将CPU比作一个个干活儿的人。如果你是任务发布者,你会怎么做呢?“小牛师兄问。
“直接把任务分解后分发给每一个人?”小白说。
“NO,你这样做的话会很麻烦。如果任务比较简单的话倒是可以,但是如果很复杂的短期内无法完成的任务就很麻烦。最常见的做法是:先给这个团队找个队长,然后将任务下发给队长,队长再将任务一层层的下发下去,这样在一个周期结束后,队长将队员的结果收集起来进行汇总,层层汇总上来,最终交到你的手里。对于庞大的工作任务,这种管理机制是经常使用的。“小牛师兄说。
“并行计算也是这样,通常在众多CPU中会有一个队长,专门负责在每一个周期内任务的下发与汇总。“
“并行计算通常这样运作:任务提交后,作为队长的CPU接受任务,并将任务分解后下发给各成员CPU,成员CPU接到自己的任务后进行计算求解,完毕后将结果上传给队长CPU,队长CPU收集所有的队员结果进行检查和汇总,之后进入下一个循环周期。”
并行劣势
“并行计算其实也有很多的麻烦事情要解决。最常见的就是CPU间的通讯。就像一群人合力办一件事,甲说要这么做,乙说要那么做,丙说不按他的方案的话就罢工,这可怎么办?本来一件事情两天就能做完,结果花三天时间进行沟通,事情还没开始干。并行计算也是这样,CPU队长收集队员的数据并进行数据汇总需要花费时间。“
“还有一些情况并不适合并行计算。比如说具有明显流程性的操作,一个任务的开始必须建立在另一个任务结束的基础上,对于此类工作则不适合并行计算。“
“正因为有诸多问题,因此利用N个CPU并不能获得N倍计算速度的提升,一般情况下1+1都小于2。”小牛师兄最后说。
单机多核与多机单核
“并行计算涉及到多个CPU,这些CPU可能位于一台或多台计算机上。现在单CPU拥有多个核心的情况已经非常普遍,而一台计算机上拥有几个CPU的情况在工作站上也很常见,这些有什么不一样么?”小白问。
“在本质上并没有什么不同,但是由于物理结构的不一样,计算效率相差比较大。通常CPU内部核心间带宽最大,通讯速度最快。而多路CPU间通讯次之,多机器互联的CPU通讯受限于网络传输速度,速度最慢。”小牛师兄解释道。
郑重申明
- 本系列根据真实经历改编,如有雷同实属巧合,请勿人肉
- 转载请务必保证文字完整
对系列感兴趣的朋友可微信扫描下方二维码,关注微信公众号第一时间接收文章更新。

【小白的CFD之旅】23 串行与并行的更多相关文章
- 【小白的CFD之旅】小结及预告
这是小白系列的索引,后续会继续更新. 已更新的部分 01 引子02 江小白03 老蓝04 任务05 补充基础06 流体力学基础07 CFD常识08 CFD速成之道09 初识FLUENT10 敲门实例1 ...
- 《小白的CFD之旅》招募写手
<小白的CFD之旅>系列招募写手. 由于工作繁忙,<小白的CFD之旅>系列更新缓慢,现招募志愿者写手.这是一个分享平台,欢迎各位愿意分享自己CFD学习经历的朋友们. <小 ...
- 【小白的CFD之旅】13 敲门实例【续3】
接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...
- 【小白的CFD之旅】12 敲门实例【续2】
接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...
- 【小白的CFD之旅】11 敲门实例【续】
主要内容: 接上文[小白的CFD之旅]10 敲门实例 2.4 Materials设置2.5 Cell Zone Conditions2.6 Boundary Conditons2.7 Dynamic ...
- 【小白的CFD之旅】01 引子
小白的CFD之旅 写在前面 CFD是计算流体力学的英文简称,是计算机辅助工程(CAE)的主要分支,目前广泛应用与科学研究.工程设计中.这是一门综合了数学.计算机及流体力学的综合学科,涉及到众多的专业理 ...
- GCD中的dispatch_sync、dispatch_sync 分别与串行、并行队列组合执行小实验
平常开发中会经常用gcd做一下多线程任务,但一直没有对同步.异步任务在串行.并行队列的执行情况做个全面的认识,今天写了个demo跑了下,还是有些新发现的. 代码如下: - (void)touchesB ...
- java面试一日一题:再谈垃圾回收器中的串行、并行、并发
问题:请讲下java中垃圾回收器的串行.并行.并发 分析:该问题主要考察在垃圾回收过程中垃圾回收线程和用户线程的关系 回答要点: 主要从以下几点去考虑, 1.串行.并行.并发的概念 2.如何考虑串行. ...
- 【小白的CFD之旅】09 初识FLUENT
按黄师姐的推荐,小白回头查找起 FLUENT的资料来.通过网络及图书馆查找相关资料,小白对于FLUENT有了基本的认识. FLUENT是一个CFD软件包,目前隶属于ANSYS公司 目前FLUENT的最 ...
随机推荐
- 转:OGRE场景管理器介绍
一个场景代表在虚拟世界中显示的物品.场景可以包括静态几何体(比如地形或者室内),模型(比如树.椅子等),光和摄像机.场景有下面种类.室内场景:可能由走廊.有家具的屋子和挂着装饰品的墙组成.室外场景:可 ...
- Java Web 开发进阶案例之人事管理系统的完整实现
技术:Java+ jsp + servlet+ javabeans +sql+tomcat 概述 本系统的主要任务是实现人事管理系统的系统化和自动化管理, 主要包括招聘入 职.到期离职和员工调动信 ...
- 解决CSS的position:absolute中left效果
有时候css中设置了position:absolute,left:100px,但是如果我们不想要这个left怎么办呢,当然你直接删除就可以,但是如果是框架的css,你直接删除就有问题了,这时候该怎么办 ...
- git pull时冲突的几种解决方式
仅结合本人使用场景,方法可能不是最优的 1. 忽略本地修改,强制拉取远程到本地 主要是项目中的文档目录,看的时候可能多了些标注,现在远程文档更新,本地的版本已无用,可以强拉 git fetch --a ...
- (原)python中不同文件之间使用所谓的全局变量
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/8108640.html 参考网址: https://www.cnblogs.com/20150705-y ...
- 快排法求第k大
快排法求第k大,复杂度为O(n) import com.sun.media.sound.SoftTuning; import java.util.Arrays; import java.util.Ra ...
- Vue.js——60分钟快速入门 开发· webpack 中文文档
转载于:http://www.cnblogs.com/keepfool/p/5619070.html http://www.css88.com/doc/webpack2/guides/get-star ...
- 使用Anemometer分析MySQL慢查询记录
数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前需要安装pe ...
- WebDriver基本操作入门及UI自动化练手页面
在这里集中了我们在做UI自动化时常见的一些控件操作.希望能对新手有帮助. 下载地址:http://files.cnblogs.com/zhangfei/demo.rar package com.tes ...
- 定制jQuery File Upload为微博式单文件上传
日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. jQuery File Upload是一个非常优秀的上传组件,主要使用了XHR作为上传方 ...