【小白的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的最 ...
随机推荐
- docker容器日志在哪?以及清理命令
/var/lib/docker/containers 日志大小限制:传送门 查看所有容器日志大小和清理所有容器日志命令: ls -lh $(find /var/lib/docker/container ...
- Fix: Windows Script Host access is disabled on this machine
If you receive this Windows Script Host access is disabled on this machine, Contact your administrat ...
- ArcGIS空间参考概述
摘要:在地理数据库中,坐标系和其他相关空间属性被定义为各数据集的空间参考的一部分.空间参考是用于存储各要素类和栅格数据集,以及其他坐标属性(例如,x,y 坐标的坐标分辨率及可选的 z 坐标和测量 (m ...
- 代理Proxy初探
Proxy,也就是"代理"了. 意思就是.你不用去做,别人取代你去处理.比方说:租房.你仅仅要找到"我爱我家"中介,把全部的事情交给他们去代劳, "我 ...
- 【总结 】550,535,553 Mail from must equal authorized user— jenkins(hudson) email163邮箱和26邮箱成功配置总结
Failed to send out e-mail com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal author ...
- memcached全面剖析--5. memcached的应用和兼容程序
我是Mixi的长野.memcached的连载终于要结束了.到上次为止,我们介绍了与memcached直接相关的话题,本次介绍一些mixi的案例和实际应用上的话题,并介绍一些与memcached兼容的程 ...
- 树莓派进阶之路 (010) - 树莓派raspi-config配置(转)
经过前面两步我们的树莓派已经正常的工作起来了,但是在真正用它开发之前还需要进行一些列的配置以及软件的安装,这样开发起来才会得心应手,下面我们介绍一下常用的软件和服务 1.配置选项: 树莓派第一次使用的 ...
- 如何在Android Studio项目中导入开源库?
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...
- 【HTML】前端性能优化之CDN和WPO的比较
CDN通过将资源存储在更接近用户的位置,缩短到服务器的往返行程,加快页面加载时间来解决性能问题.WPO解决方案,如Radware的FastView,则在前端进行性能提升处理,使页面更有效地呈现在浏览器 ...
- 【struts2】自定义登录检查拦截器
在实际开发中,一个常见的功能要求是:有很多操作都需要登录后才能操作,如果操作的时候还没有登录,那么通常情况下会要求跳转回到登录页面. 1)如何实现这样的功能呢? 在具体实现之前,先来考虑几个问题: ( ...