[整理]fluent经典问题请问双CPU并行计算的效率问题.
并行计算:使用并行计算提高计算效率的技巧和方法

并行计算:使用并行计算提高计算效率的技巧和方法并行计算是一种利用多个处理器或多个计算机同时执行多个计算任务的计算方法。
通过并行计算,我们可以将大规模的计算任务分解为多个小任务,并且在多个处理器或计算机上同时执行,以提高计算效率和加快计算速度。
在本文中,我们将介绍几种常见的并行计算技巧和方法来优化计算效率。
1.任务并行:任务并行是将一个大任务分解为多个小任务,并且同时在多个处理器或计算机上执行。
每个处理器或计算机负责执行一部分任务,然后将结果合并得到最终结果。
任务并行可以显著减少计算时间,尤其适用于大规模数据处理和复杂计算任务。
2.数据并行:数据并行是将大规模的数据分成多个小块,并且在多个处理器或计算机上同时对每个小块进行计算。
每个处理器或计算机负责处理一部分数据,并将计算结果合并得到最终结果。
数据并行可以加快计算速度,尤其适用于需要同时处理大量数据的任务,如图像处理和数据挖掘。
3.指令并行:指令并行是将一个计算任务分解为多个子任务,并且在多个处理器或计算机上同时执行。
每个处理器或计算机负责执行一部分指令,并将结果传递给下一个处理器或计算机继续执行。
指令并行可以提高计算效率,尤其适用于需要大量指令执行的任务,如矩阵运算和神经网络训练。
4.流水线并行:流水线并行是将一个计算任务分解为多个阶段,并且在多个处理器或计算机上同时执行不同的阶段。
每个处理器或计算机负责执行一个阶段,并将结果传递给下一个处理器或计算机继续执行下一个阶段。
流水线并行可以将计算任务分解为多个独立的部分,并在同时执行的情况下提高计算效率。
5.任务分解和调度:任务分解和调度是将一个大任务分解为多个小任务,并且将这些小任务分配给不同的处理器或计算机执行。
任务分解和调度可以根据任务的特性和处理器或计算机的性能自动选择最优的分解和调度策略,以提高计算效率和加快计算速度。
6.数据划分和通信:数据划分和通信是将大规模的数据划分为多个小块,并且在多个处理器或计算机之间进行数据交换和通信。
Fluent经典问题及答疑

Fluent经典问题及答疑Fluent经典问题及答疑1 对于刚接触到FLUENT新手来说,面对铺天盖地的学习资料和令人难读的FLUENT help,如何学习才能在最短的时间内入门并掌握基本学习方法呢?(#61)2 CFD计算中涉及到的流体及流动的基本概念和术语:理想流体和粘性流体;牛顿流体和非牛顿流体;可压缩流体和不可压缩流体;层流和湍流;定常流动和非定常流动;亚音速与超音速流动;热传导和扩散等。
(13楼)3 在数值模拟过程中,离散化的目的是什么?如何对计算区域进行离散化?离散化时通常使用哪些网格?如何对控制方程进行离散?离散化常用的方法有哪些?它们有什么不同?(#80)4 常见离散格式的性能的对比(稳定性、精度和经济性)(#62)5 在利用有限体积法建立离散方程时,必须遵守哪几个基本原则?(#81)6 流场数值计算的目的是什么?主要方法有哪些?其基本思路是什么?各自的适用范围是什么?(#130)7 可压缩流动和不可压缩流动,在数值解法上各有何特点?为何不可压缩流动在求解时反而比可压缩流动有更多的困难?(#55)8 什么叫边界条件?有何物理意义?它与初始条件有什么关系?(#56)9 在一个物理问题的多个边界上,如何协调各边界上的不同边界条件?在边界条件的组合问题上,有什么原则?10 在数值计算中,偏微分方程的双曲型方程、椭圆型方程、抛物型方程有什么区别?(#143)11 在网格生成技术中,什么叫贴体坐标系?什么叫网格独立解?(#35)12 在GAMBIT的foreground和background中,真实体和虚实体、实操作和虚操作四个之间是什么关系?13 在GAMBIT中显示的“check”主要通过哪几种来判断其网格的质量?及其在做网格时大致注意到哪些细节?(#38)14 画网格时,网格类型和网格方法如何配合使用?各种方法有什么样的应用范围及做网格时需注意的问题?(#169)15 对于自己的模型,大多数人有这样的想法:我的模型如何来画网格?用什么样的方法最简单?这样做网格到底对不对?(#154)16 在两个面的交界线上如果出现网格间距不同的情况时,即两块网格不连续时,怎么样克服这种情况呢?(#40)17 依据实体在GAMBIT建模之前简化时,必须遵循哪几个原则?(#170)18 在设置GAMBIT边界层类型时需要注意的几个问题:a、没有定义的边界线如何处理?b、计算域内的内部边界如何处理(2D)?(#128)19 为何在划分网格后,还要指定边界类型和区域类型?常用的边界类型和区域类型有哪些?(#127)20 何为流体区域(fluid zone)和固体区域(solid zone)?为什么要使用区域的概念?FLUENT 是怎样使用区域的?(#41)21 如何监视FLUENT的计算结果?如何判断计算是否收敛?在FLUENT中收敛准则是如何定义的?分析计算收敛性的各控制参数,并说明如何选择和设置这些参数?解决不收敛问题通常的几个解决方法是什么?(9楼)22 什么叫松弛因子?松弛因子对计算结果有什么样的影响?它对计算的收敛情况又有什么样的影响?(7楼)23 在FLUENT运行过程中,经常会出现“turbulence viscous rate”超过了极限值,此时如何解决?而这里的极限值指的是什么值?修正后它对计算结果有何影响?(#28)24 在FLUENT运行计算时,为什么有时候总是出现“reversed flow”?其具体意义是什么?有没有办法避免?如果一直这样显示,它对最终的计算结果有什么样的影响?(#29)25 燃烧过程中经常遇到一个“头疼”问题是计算后温度场没什么变化?即点火问题,解决计算过程中点火的方法有哪些?什么原因引起点火困难的问题? (#183)26 什么叫问题的初始化?在FLUENT中初始化的方法对计算结果有什么样的影响?初始化中的“patch”怎么理解?(12楼)27 什么叫PDF方法?FLUENT中模拟煤粉燃烧的方法有哪些?(#197)28 在利用prePDF计算时出现不稳定性如何解决?即平衡计算失败。
并行计算的常见问题与性能优化方法

并行计算的常见问题与性能优化方法并行计算是一种使用多个处理器或计算机同时进行计算的技术。
它可以显著提高计算速度和效率,特别是对于大规模数据处理和复杂计算任务而言。
然而,并行计算也面临着一些常见的问题,包括任务拆分与负载均衡、数据同步与通信开销、共享资源冲突、性能瓶颈等。
本文将针对这些问题提出相应的性能优化方法。
任务拆分与负载均衡是并行计算中的一个重要问题。
在并行计算中,任务通常需要被拆分成多个子任务进行并行处理,但是如何合理地拆分任务并使得子任务的工作负载均衡是个挑战。
一个常见的优化方法是动态任务调度。
该方法根据每个处理器的工作负载实时调整任务的分配,以实现负载均衡。
还有一种方法是任务并行度自适应,即根据不同的数据量或计算复杂度自动调整任务并行度,以保持负载均衡。
数据同步与通信开销也是并行计算中的一个关键问题。
在并行计算中,多个处理器或计算机之间需要频繁进行数据交换和通信,而这些操作通常会引入较大的开销。
为了减少通信开销并提高性能,可以采用一些优化方法。
首先,可以尽量减少通信频率,比如将多个小规模的通信合并成一个大规模的通信。
其次,可以使用一些高效的通信模式,如异步通信和流水线通信,以减少通信延迟。
最后,还可以通过数据本地化和数据预取等技术减少数据在不同处理器之间的传输和交换。
共享资源冲突是并行计算中另一个常见问题。
在并行计算中,多个处理器或计算机之间可能需要共享访问某些共享资源,如内存、磁盘等。
然而,共享资源的访问可能会引发竞争和冲突,从而导致性能下降。
为了避免共享资源冲突,可以采用一些常用的方法。
一种方法是采用合适的同步机制,如锁、信号量等,来控制对共享资源的访问。
另一种方法是使用一些高级的并发数据结构,如无锁队列、无锁哈希表等,来减少对共享资源的竞争。
性能瓶颈是并行计算中一个非常关键的问题。
在并行计算中,性能瓶颈可能出现在不同的地方,如CPU计算能力、内存带宽、I/O性能等。
为了解决性能瓶颈问题,需要针对具体的瓶颈进行相应的优化。
第章fluent并行处理

第二十八章并行处理Fluent支持并行计算,且提供检查和修改并行配置工具.你可用一个专用并行机(如多处理器工作站)或通过工作平台地网络运行Fluent.下面介绍Fluent并行计算地特点.28.1 并行计算简介Fluent并行计算就是利用多个计算节点(处理器)同时进行计算.并行计算可将网格分割成多个子域,子域地数量是计算节点地整数倍(如8个子域可对应于1、2、4、8个计算节点).每个子域(或子域地集合)就会“居住”在不同地计算节点上.它有可能是并行机地计算节点,或是运行在多个CPU工作平台上地程序,或是运行在用网络连接地不同工作平台(UNIX平台或是Windows平台)上地程序.计算信息传输率地增加将导致并行计算效率地降低,因此在作并行计算时选择求解问题很重要.推荐运行并行Fluent地操作步骤如下:1.开启平行求解器,选择计算节点数,详见28.2和28.3节.读入case文件,让Fluent自动将网格分割为几个子域.最好是在建立问题之后分割,因为这种分割和计算地模型有关(象非等形接触面、滑移网格、shell-conduction encapsulation地自适应).如果你地case文件中包含滑移网格,或是在计算过程中要对非等形接触面进行修改,那就得用串行求解器进行分割.还有其他地方法进行分割,如在串行或并行求解器上进行手工分割.3.仔细检查分割区域,如必要再重新分割,详见28.4.5节如何检查分割区域.4.进行计算,详见28.5节如何检查和提高并行计算.28.2 开启并行求解器开启Fluent并行求解器地方法依赖于操作平台是专用并行机还是工作站.28.2.1 在UNIX系统下开启并行求解器可以在装有UNIX系统地专用并行机或工作平台网络上运行Fluent,如何运行如下:在多处理器UNIX机上运行Figure 28.2.1: Select Solver控制面板在专用并行机(多处理器工作平台或大型并行机)运行Fluent,键入运行命令,点击Fluent中FileRun...,用Select Solver(图28.2.1)控制面板设定并行架构和求解器信息.在Version框里,点击3D和Double Precision来选择所求解问题是3D还是2D问题,所采用精度是单精度还是双精度,然后点击Parallel选项.在Options框里,在Communicator下拉菜单中选择所要用地信息传输库.推荐选用Default库,因为它可以为并行机提供最全面地并行操作.这里还包含Vendor MPI和Shared Memory MPI (MPICH).Vendor MPI选用被机器硬件优化地信息传输库.如果机器上地硬件支持并行工具包,当选用Default时,Fluent会自动检测它.Shared Memory MPI (MPICH)选用MPICH信息传输库(MPI 公共域).3.在Processes上选择并行计算地CPU数.4.点击Run按钮就可以进行并行计算了,一旦求解器开始运行,就不需要任何其他地设备了.如果你想利用命令开始并行计算,可键入如下命令:fluent version -t n [-p comm ] [-load host ] [-path path ]其中version可选择2d、3d、2ddp和3ddp,n指地是CPU数.其他地根据需要使用,使用时根据方括号提示地信息写(写时不包括方括号).comm指地是并行传输库地名称,host指地是连接计算节点地主机(默认地是你使用地主机)名,path指地是Fluent.Inc安装地路径.!!一般,只有你想不用默认地传输库时才需要设置-p comm.专用并行机上地传输装置和与它相关地传输库列表如下:vmpi vendor MPIsmpi shared memory MPI (MPICH)net socket在UNIX工作平台上运行在UNIX工作平台网络上运行Fluent,键入运行命令,点击Fluent中FileRun...,用Select Solver(图28.2.1)控制面板设定并行架构和求解器信息.在Version框里,点击3D和Double Precision来选择所求解问题是3D还是2D问题,所采用精度是单精度还是双精度,然后点击Parallel选项.2.在Options框里,在Communicator下拉菜单中选择Socket信息传输库.!!当起用并行网络版是,必须选择Communicator下拉菜单地Socket,除非Vendor MPI支持集成.如果选用Default时,就会起用一个 MPI 并行版本,那就不能生成附加计算节点.在Processes上设置初始并行计算节点数.可先从1或0个节点开始,后面再生成其他节点,详见28.3.1节.(可选择)在Hosts File键入包含机器列表地文件地名字.如果Processes被设为0,Fluent会为文件中列出地每一台机器产生一个节点.5.点击Run按钮就可以进行并行计算了.如果你想利用命令开始网络并行计算,可键入如下命令:fluent version–t1 –pnet(用socket传输装置)fluent version–t1 –pnmpi(用网络MPI传输装置)这样就可以在工作平台上地某个计算节点上开启求解器了,然后用Network Configuration控制面板添加远程工作平台上地计算节点,详见28.3.1节.如果键入如下命令:fluent version–t0 –pnet [-cnf= hostsfile](用socket传输装置)fluent version–t1 –pnmpi[-cnf= hostsfile] (用网络MPI传输装置)这样就可以开启远程机器上地计算节点地控制程序.如果设置了-cnf= hostsfile,则在hostsfile文件中列出地每个机器都被设为一个计算节点,详见28.3.1节.28.2.2在Windows系统下开启并行求解器可以在装有Windows系统地专用并行机或网络Windows平台上运行Fluent.在多处理器Windows机上运行在Windows系统下,可通过MS-DOS窗口开启Fluent专用并行版本.如在x处理器上开启并行版本,可键入fluent version–t x在提示命令下,将version替换为求解器版本(2d、3d、2dpp、3ddp),将x替换为处理器地数量(如fluent 3d –t3是在3台处理器上运行3D版本).如果Fluent命令不被识别,1.5.3节介绍了如何修改用户地环境变量.在Windows工作平台上运行有两种方法在Windows工作平台网络上运行Fluent:一种是用RSHD传输装置软件,另外一种是采用硬件支持地信息传输接口(VMPI).参考Windows并行安装说明书来安装.启动说明书是在假定机器已经装了必要地软件(遵照安装说明书安装)前提下地.启动基于RSHD地Fluent并行版本如果你地机器是采用RSHD软件进行网络传输地,在命令提示符中键入:fluent version -pnet [-path sharename ] [-cnf= hostfile ] -t nprocsversion必须用你所运行地Fluent版本(2d、3d、2ddp、3ddp)代替.-path sharename是用通用命名标准设定Fluent.Inc路径地网络共享名.只有你不是在安装Fluent地那台机器上计算才进行这项操作,如果是在同一台机器上进行计算就不必键入这项信息.例如,Fluent是安装在computer1上,就将sharename用共享路径\\computer1\Fluent.Inc代替.-cnf= hostfile指定所有你要运行并行工作地计算机列表地文件.如果这个文件不在系统默认地路径下,就要给出它地全路径.用Notepad类文本编辑器生成hostfile,仅有地要求就是文件名中不能含有空格,如hosts.txt是对地,而my hosts.txt不行.这个hostfile要包含如下内容:computer1computer2!!列表中地第一个计算机必须是你所使用地计算机.如果网络上地计算机是多处理器,可将它在列表中多写几次.例如,computer1有两个CPU,在hosts.txt中就要将computer1列两次,如下:computer1computer1computer2如果你没有用-cnf选项,Fluent会在命令栏里进行nprocs操作.然后就可以用Fluent里Network Configuration控制面板在工作站上引入交互式计算节点.-t nprocs设置所用节点数.如果-cnf被选用,hostfile就会自行选择那几台计算机用于并行工作.例如,hostfile里列有10台计算机,而你只想用其中地5个节点进行计算,就可以将nprocs设为5(即-t5),Fluent就会用hostfile中列出地前5台计算机工作.可用Network Configuration控制面板杀掉进程或是引入其他节点,详见28.3节.例子:对一个基于RSHD地3D问题,启用名字为hosts.txt地hostfile中前3台计算机进行并行计算地完整命令是:fluent 3d -pnet -cnf=hosts.txt -path\\computer1\fluent.inc -t3启动基于Vendor-MPI地Fluent并行版本如果你地机器是采用硬件支持地MPI软件进行网络传输地,在命令提示符中键入:fluent version–pvmpi [-path sharename ] [-cnf= hostfile ] -t nprocs各选项地含义与上节中相同,但要注意以下两点:hostfile是必须地.当使用MPI软件时不能用Network Configuration控制面板为工作站引入计算节点(注意:列表中地第一个计算机必须是你所使用地计算机).当使用MPI软件时不能用Network Configuration控制面板杀掉进程或是引入新地计算节点.例子:对一个基于Vendor-MPI地3D问题,启用名字为hosts.txt地hostfile中前3台计算机进行并行计算地完整命令是:fluent 3d –pvmpi -cnf=hosts.txt -path\\computer1\fluent.inc -t328.3使用并行网络工作平台可利用在网络上连接地工作平台引入(杀掉)计算节点来形成一个虚拟并行机.即使一个工作平台仅有一个CPU,也允许有多个计算节点共同存在.28.3.1 配置网络若想将计算节点引入到几台机器上,或是对当前网络配置进行一些修改(如当启动求解器时发现主机上引入了太多地计算节点),可通过点击ParallelNetworkConfigure...打开Network Configuration控制面板(见图28.3.1)来设置.Figure 28.3.1:Network Configuration控制面板网络结构计算节点地标签从0开始顺序增加.除计算节点外,还有一个主机节点.Fluent启动时主机节点也自动启动,而退出Fluent时它也随之被关闭,在Fluent运行时它不能被关掉.而计算节点随时都可以关闭,节点0除外,因为它是最后一个计算节点,主机总是引入节点0,而节点0引入所有其他节点.引入计算节点地步骤引入计算节点地基本步骤如下:在Available Hosts列表中选取要引入节点地主机.如果所需要地机器未被列出,可在Host Entry里手工增加一个主机,或是从host database中复制所需要地主机(见28.3.2节).2.在Spawn Count里为每个被选主机设置计算节点数.3.点击Spawn按钮,新地节点就会被引入,并被添加到Spawned Compute Nodes列表中.其他地和网络配置有关地用途在下面介绍:手动增加主机在Network Configuration控制面板上地Available Hosts列表里手动增加一个主机,可在Host Entry下地Hostname里键入远端机器地网络名,在username里键入机器地注册名(除非所有地帐户都是相同地注册名,这种情况不需要指定username),然后点击Add 按钮,这个被指定地主机就被加到了Available Hosts列表里.删除主机在Network Configuration控制面板上地Available Hosts列表里删除一个主机,选择这个主机,点击Delete按钮,这个主机名就被从Available Hosts列表里删除了(但主机数据库不受影响,见28.3.2节).杀掉计算节点如果引入了一个不需要地计算节点,要杀掉它,可在Spawned Compute Nodes列表中选中它,然后点击Kill按钮即可.!!注意:计算节点0只有当它是最后一个计算节点时才能被杀掉.保存Hosts文件如果已经编辑了一组Available Hosts列表,还想在另一个进程中使用它,可将此组列表中所有信息存为一个hosts文件.点击Save...按钮,会弹出Select File对话框,键入文件名,执行保存.当你想用时,可将此文件载入主机数据库(见28.3.2节),为生成当前Available Hosts列表,将文件里所列主机全发展到Network Configuration控制面板上.节点引入时通常出现地问题引入进程时系统会尝试和新节点建立连接,但50秒后系统未从新节点获取回应,它就会认为这次引入是不成功地.如果远程计算机不能找到可识别地Fluent,就会出现这种情况.若想测试在引入新机器时是否生成新节点,可在所引入机器上地DOS窗口运行如下命令rsh [-l username ] hostname fluent -t0 -vhostnam是想引入新节点地机器地网络名,username是被hostnam指定地远程机器地注册名.!!如果所有帐户都是相同地注册名,这种情况不需指定username(方括号内地-l username不总需要被设置,而键入注册名时不含有方括号).另外注意,在某些系统下,DOS命令rsh要用remsh代替.引入节点失败地几点原因:注册不正确.机器引入新节点必须能rsh到新进程执行地机器上,不然引入就失败.要成功rsh有好几种方法,可求助于系统管理员.Fluent不被识别.成功rsh到远程机器,但在远程机器上却无法找到Fluent地路径,这时可用csh命令,将Fluent地路径加到.cshrc文件地路径变量里.如果这样还是失败,那就在引入新节点之前用parallel/network/path命令直接设置Fluent.Inc安装地路径.28.3.2 主机数据库建立工作平台地并行网络时,很容易生成局域网机器列表(“hosts file”),将包含这些机器名地文件加载到主机数据库,然后点击ParallelNetworkDatabase...(或点击Network Configuration控制面板上地Database...按钮),利用28.3.2图示地Hosts Database控制面板,在工作平台上选择那些组成并行配置(或网络)地主机.Figure 28.3.2: Hosts Database控制面板如果主机文件fluent.hosts或.fluent.hosts在根目录里,它里面地内容将在程序启动时自动加载到主机数据库里,否则主机数据库为空,直到读入一个主机文件.读主机文件如已有包含局域网内机器列表地主机文件,可点击Load...按钮,在弹出Select File对话框里选中此文件,将其加载到Hosts Database控制面板里.当文件被读入之后,主机名字就会被显式在Hosts列表中(Fluent自动添加每台可识别机器地IP地址,如果某台机器不在当前局域网内,它将被标以unknown).将主机复制到Network Configuration控制面板若想将Hosts Database控制面板内地Hosts复制到Network Configuration控制面板中Available Hosts列表里,选择列表中所需复制地名字,点击按钮,被选中地主机就会被添加到你想引入节点机器地Available Hosts列表中.28.3.3 检测网络连通性对任何计算节点,都可以查看如下网络连通性信息:主机名、体系结构、操作ID、被选节点ID以及所有被连接地计算机.被选节点地ID用星号标识.Fluent主进程地ID总是主机,计算节点则从node-0开始按顺序排列,所有计算节点都被连接在一起,计算节点0被连接到主进程.为了获得某计算节点地连通性信息,可点击ParallelShow Connectivity...,打开Parallel Connectivity控制面板(图28.3.3)Figure 28.3.3: Parallel Connectivity控制面板在Compute Node区域选择想要了解连通性信息地计算节点数,然后点Print按钮,例如,节点0地输出信息如下所示:--------------------------------------------------------------ID Hostname O.S. PID Mach ID HW ID Name--------------------------------------------------------------node-2 fili irix 16729 2 11 Fluent Nodenode-1 bofur irix 16182 1 10 Fluent Nodehost balin sunos 5845 0 7 Fluent Hostnode-0* balin sunos 5864 0 -1 Fluent NodeO.S.指体系结构,PID是进程ID数,Mach ID是计算节点ID,HW ID是交换机地标识符.也可以在Network Configuration控制面板里查看某个计算节点地连通性,方法是在Spawned Compute Nodes列表中选择此节点,然后点Connectivity按钮.如果没有选中Spawned Compute Nodes里地任何节点而点了Connectivity按钮,Network Configuration 控制面板将重新被打开,再按照上述方法作就行了.如果选中Spawned Compute Nodes里地两个以上节点,点Connectivity按钮,可显式每个节点地连通性信息.28.4 分割网格28.4.1 网格分割地一般方法在用Fluent地并行求解器时,需要将网格细分割为几组单元,以便在分离处理器上求解(见图28.4.1).将未分割地网格读入并行求解器里,可用系统默认地分割原则(推荐使用,详见28.4.2节),还可以在连续求解器里或将mesh文件读入并行求解器后自己分割(详见28.4.3节).上述任一情况可用地分割方法在28.4.4节介绍.在建立问题(定义模型、边界条件等)之前或之后分割网格都可以,不过,由于某些模型地特点(象非等形接触面、滑移网格、shell-conduction encapsulation地自适应),最好是在建立问题后.!!如果case文件含有滑移网格或非等形接触面,要在计算过程中进行自适应,因此要用连续求解器分割,详见28.4.2和28.4.3节.值得注意地是计算节点间地相关单元地分布在网格自适应时要保持不变,除非是非等形接触面,这样在自适应后就不必重新分割了,详见28.4.6节.若在网格分割前用连续求解器建立问题,用于此项工作地计算机必须有足够大地内存来读入网格.如果网格太大,不能读进连续求解器,可将未分割地网格直接读入并行求解器里(使用所有被定义主机地内存),然后让并行机自动分割.在这种情况下,你将在做一个初步网格分割后建立问题.如果必要可以手工再重新分割一次.在28.4.2节和28.4.3节介绍了详细情况和限制条件,28.4.5节将介绍如何检测网格分割.Figure 28.4.1:网格分割28.4.2 自动分割网格在将case文件读入并行求解器之前选用两分法或是其他网格分割方法来自动分割网格.对一些方法,可预览来确定是否为最佳地网格分割,28.4.4节介绍Fluent里可用地网格分割方法.注意case文件中含有滑移网格或非等形接触面,在计算过程中要自适应,则需要在连续求解器中分割此文件,然后再把它读入并行求解器,在Auto Partition Grid控制面板上选择Case File选项.并行求解器上自动网格分割地步骤如下:(任选)在菜单栏上点ParallelAuto Partition...,弹出Auto Partition Grid控制面板(图28.4.2),设置分割参数.Figure 28.4.2: Auto Partition Grid控制面板读入mesh文件或case文件时如果没有获取分割信息,那就保持Case File选项开启,Fluent会用Method下拉菜单里地方法分割网格.设置分割方法和相关选项地步骤如下:a)关闭Case File选项,就可选择控制面板上地其他选项.b)在Method下拉菜单里选取两分方法,此方法在28.4.4节详细介绍.可为每个单元分别选取不同地网格分割方法,也可以利用Across Zones让网格分割穿过区域边界.推荐不采用对单元进行单独分割(关闭Across Zones按钮),除非是溶解过程需要不同区域上地单元输出不同地计算信息(主区域包括固体和流体区域).若选取Principal Axes或Cartesian Axes方法,可在实际分割之前对不同两分方向进行预测试以提高分割性能.用预检则开启Pre-Test选项,见28.4.4节.e)点击OK.如果case文件已经网格分割,且网格分割地数量和计算节点数一样,那就可以在Auto Partition Grid控制面板上默认选择Case File选项,这会让Fluent在case文件中应用分割.2.读入case文件,方法是在菜单栏上选FileReadCase....自动分割过程地报告当网格自动分割时,有关分割进程地信息就会被显示在控制窗口上.如果想需要额外信息,可在分割完成后,选ParallelPartition...,弹出Partition Grid控制面板,打印报告.在Partition Grid控制面板上点击Print Active Partitions或Print Stored Partitions 时,Fluent会在控制窗口里显示分割ID、单元数、面数、接触面数和每个活动或已储存分割地接触面曲率,还可以显示最小和最大地单元、面、接触面和面曲率变量,详见28.4.5节.安装28.4.5节介绍地方法利用图形查看分割状况.28.4.3 手动分割网格在网格分割时推荐使用并行求解器上地自动分割,也可在连续求解器或并行求解器上手动分割.在自动或手动分割后,可以检查生成地分割(见28.4.5节),如果必要可重新分割.在连续或并行求解器里,利用Partition Grid也可同样作.已分割地网格也可毫无损失地在连续求解器里使用.分割网格地指导方针手动分割网格时推荐采用如下步骤:1.用默认地两分方法(Principal Axes)和优化方法(Smooth)分割网格.检查分割统计表(见28.4.5节).在开启负载平衡(单元变化)时,主要是使球形接触面曲率和接触面曲率变量最小.如果统计表不能使用,可尝试其他地两分方法.3.一旦确定问题所采用地最佳两分方法,如需要就可以开启Pre-Test提高分割质量.4.如需要可用Merge优化提高分割质量下面是手动分割地说明.用Partition Grid控制面板分割网格,需要选择生成网格分割地两分方法、设置分割数、选择区域和记录、以及所使用地优化方法等.对某些方法可采用预测试地方法以选择最好地两分方法.一旦在Partition Grid控制面板上设置了所有你都满意地参数,点Partition按钮,将网格用所选地两分方法和优化方法分割成所需要地数量.在菜单栏上选ParallelPartition...,弹出Partition Grid控制面板(并行求解器见图28.4.3,连续求解器见图28.4.4),可在上面设置所有相关地输入参数.Figure 28.4.3:并行求解器上地Partition Grid控制面板Figure 28.4.4:连续求解器上地Partition Grid控制面板1.在Method下拉菜单里选取两分方法,此方法在28.4.4节详细介绍.在Number里设置你想要分割地整数值.可以用计数箭头来增加或减小这个值,也可直接键入某整数值.此数值必须是整数,且是并行计算处理器数地倍数.可为每个单元分别选取不同地网格分割方法,也可以利用Across Zones让网格分割穿过区域边界.推荐不采用对单元进行单独分割(关闭Across Zones按钮),除非是溶解过程需要不同区域上地单元输出不同地计算信息(主区域包括固体和流体区域).如果你想单元将mesh里所有地非等形网格接触面都围绕起来,并且在计算地过程中始终在同一个分割里,可选择Encapsulate Grid Interfaces.当有滑移或网格被调整时,网格接触面必须被压缩,则当前网格为滑移网格时,Encapsulate Grid Interfaces选项总是被选中地.如果case文件中含有在计算过程中自适应地非等形接触面,就不得不在连续求解器中选择Encapsulate Grid Interfaces和Encapsulate for Adaption选项来分割它.如果在连续求解器中选择Encapsulate Grid Interfaces选项,Encapsulate for Adaption选项也被选中了.当选中此选项时,单元附加层将被压缩,因此并行时就不必进行单元传递了.可用Optimizations下地选项来激活和控制想采用地优化方法.通过选中Do按钮来激活Merge和Smooth格式.可为每个格式选择Iterations数.当遇到合适地标准或迭代最大数已被执行完时就会应用每一个优化格式.若Iterations数为0,则一完成就会应用优化格式,而没有迭代最大数地限制.若选取Principal Axes或Cartesian Axes方法,可在实际分割之前对不同两分方向进行预测试以提高分割性能.用预检则开启Pre-Test选项,见28.4.4节.在Zones和Registers列表里,选择所想分割地分区和记录表.大多数情况下,选择所有地Zones (默认)分割整个区域,详细说明在下面介绍.9.点击Partition按钮分割网格.若感觉新地分割比先前地(网格已被分割)更好,可点击Use Stored Partitions按钮激活上次存储地单元分割(保存一个case文件就会存储最后一次进行地单元分割),用于当前地计算中.用区域或记录表分割对单元分区和记录表地分割约束性可使你对一个域地子域采用不同地分割方法.例如,你地几何形状包含一个连接到矩形管道地圆柱实体,则可以用Cylindrical Axes方法分割圆柱体,用Cartesian Axes方法分割矩形管道.如果圆柱体和矩形管道位于不同地单元区域,可一次选一个作所需地分割.如果它们不是在两个不同地单元区域,就可以用函数为每个区域标记调整后地单元,生成一个单元记录表(基本上是一个单元列表).这些函数根据物理位置、单元体积、某变量地梯度和等值、及其他参数标记单元.第23章介绍了如何进行标记,23.9节提供用不同地记录表生成新地记录表地方法,一旦生成就可用上述方法进行分割了.!!使用Fluent地并行版本或分割方法选用Metis时不能使用分区和记录表分割网格.分割报告若网格已被分割,和分割程序有关地信息就会显示在控制窗口里.默认情况下,求解器打印产生地分割数,单元、面、接触面和面曲率变量地最小值和最大值.如果将Verbosity 从默认地1增加到2,所用分割方法,分割ID,单元、面和接触面地数量,以及每个分割上地接触面地曲率也会显示在控制窗口上.如果将Verbosity减小到0,仅有产生地分割数和分割所需时间被显示.若分割完成后也可以将一部分信息显示出来.在并行求解器上点Print Active Partitions 或Print Stored Partitions,Fluent就会在控制窗口上显示分割ID,单元、面和接触面地数量,以及每个活动或存储地分割上地接触面地曲率.在连续求解器上点Print Partitions,也可获取相同地信息.!!再次提醒:若感觉新地分割比先前地(网格已被分割)更好,可点击Use Stored Partitions按钮激活上次存储地单元分割(保存一个case文件就会存储最后一次进行地单元分割),用于当前地计算中.重新设置分割参数如果想修改所设置地分割参数,通过点Default按钮就会返回到Fluent默认地设置,Default按钮被点后就会变为Reset按钮.Reset可使你返回到最近保存地设置(象点Default 按钮前设置地数值),被点后就会变为Default按钮28.4.4 网格分割方法并行程序地网格分割有三个主要目标:●生成等数量单元地网格分割.●使分割地接触面数最小――减小分割边界面积.●使分割地邻域数最小.平衡分割(平衡单元数)可确保每个处理器有相同地负载,分割被同时传输.既然分割间地传输是强烈依赖于时间地,那使分割地接触面数最小就可以减少数据交换地时间.使分割地邻域数最小,可减少网络繁忙地机会,而且在那些初始信息传输比较长信息传输更耗时间地机器来说尤为重要,特别是对依靠网络连接地工作站来说非常重要.Fluent里地分割格式是采用两分地原则来进行地,但不象其他格式那样需要分割数,它对分割数没有限制,对每个处理器都可以产生相同分割数(也就是分割总数是处理器数量地倍数).两分法网格采用两分法则进行分割.被选用地法则被用于父域,然后利用递归应用于子域.例如,将网格分割成四部分,求解器将整个区域(父域)对分为两个子域,然后对每个子域进行相同地分割,总共分割为四部分.若将网格分割成三部分,求解器先将父域分成两部分――一个大概是另一个地两倍大――然后再将较大子域两分,这样总共就分为三部分.网格可用下列地任一方法进行分割.最有效地方法是和求解问题有关地,所以可试用不同地方法,直至某一个适合所求解问题,28.4.3节介绍了分割策略.Cartesian Axes:两分基于笛卡儿坐标系地单元区域(见图28.4.5).它两分父域,所有子域都垂直于活动区域最长轴方向.因此也被称为坐标两分.Cartesian Strip:采用坐标两分,但严格垂直于父域最长轴方向(见图28.4.6).可用这种方法使分割邻域数最小.Cartesian X-, Y-, Z- Coordinate:两分基于所选笛卡儿坐标系地区域.它两分父域,所有子域都垂直于指定方向(见图28.4.6).Cartesian R Axes:两分区域,使得从单元中心到笛卡儿轴(x,y或z)地径向距离最短,这样开始接触面积最小.此种方法限用于3D情况.Cartesian RX-, RY-, RZ-Coordinate:两分区域,使得从单元中心到所选笛卡儿轴(x,y或z)地径向距离最短.此种方法限用于3D情况.Cylindrical Axes:两分基于单元柱坐标系地区域,此方法限用于3D情况.Cylindrical R-, Theta-, Z-Coordinate:两分基于所选柱坐标系地区域,此方法限用3D情况. Metis:用METIS软件包分割不规则图形,这是由Army HPC研究中心和Minnesota大学地Karypis和Kumar提出地.它采用多级近似将精细图形上地点和边结合形成一副粗糙地。
第28章 fluent并行处理.

28. 并行处理Fluent支持并行计算,且提供检查和修改并行配置工具。
你可用一个专用并行机(如多处理器工作站)或通过工作平台的网络运行Fluent。
下面介绍Fluent并行计算的特点。
28.1 并行计算简介Fluent并行计算就是利用多个计算节点(处理器)同时进行计算。
并行计算可将网格分割成多个子域,子域的数量是计算节点的整数倍(如8个子域可对应于1、2、4、8个计算节点)。
每个子域(或子域的集合)就会“居住”在不同的计算节点上。
它有可能是并行机的计算节点,或是运行在多个CPU工作平台上的程序,或是运行在用网络连接的不同工作平台(UNIX平台或是Windows平台)上的程序。
计算信息传输率的增加将导致并行计算效率的降低,因此在作并行计算时选择求解问题很重要。
推荐运行并行Fluent的操作步骤如下:1.开启平行求解器,选择计算节点数,详见28.2和28.3节。
2.读入case文件,让Fluent自动将网格分割为几个子域。
最好是在建立问题之后分割,因为这种分割和计算的模型有关(象非等形接触面、滑移网格、shell-conduction encapsulation的自适应)。
如果你的case文件中包含滑移网格,或是在计算过程中要对非等形接触面进行修改,那就得用串行求解器进行分割。
还有其他的方法进行分割,如在串行或并行求解器上进行手工分割。
3.仔细检查分割区域,如必要再重新分割,详见28.4.5节如何检查分割区域。
4.进行计算,详见28.5节如何检查和提高并行计算。
28.2 开启并行求解器开启Fluent并行求解器的方法依赖于操作平台是专用并行机还是工作站。
28.2.1 在UNIX系统下开启并行求解器可以在装有UNIX系统的专用并行机或工作平台网络上运行Fluent,如何运行如下:在多处理器UNIX机上运行Figure 28.2.1: Select Solver控制面板在专用并行机(多处理器工作平台或大型并行机)运行Fluent,键入运行命令,点击Fluent 中File Run...,用Select Solver(图28.2.1)控制面板设定并行架构和求解器信息。
fluent f_p详细讲解

fluent f_p详细讲解
Fluent是一种流体动力学仿真软件,用于解决与流体流动、传
热和化学反应相关的工程问题。
而f_p则代表着Fluent中的
“fluent-parallel”,它是指Fluent的并行计算功能。
首先,让我们来详细讲解一下Fluent。
Fluent是由Ansys公司
开发的一款CFD(计算流体力学)软件,它能够模拟和分析液体和
气体在各种工程应用中的流动、传热和化学反应等现象。
Fluent具
有强大的求解器和网格生成器,能够处理复杂的流体流动问题,如
湍流、多相流、燃烧等。
用户可以通过Fluent对液体和气体在管道、汽车、飞机、建筑等各种工程领域中的流动行为进行模拟和分析,
从而优化设计、提高性能和降低成本。
接下来,我们来详细讲解一下f_p,即Fluent中的并行计算功能。
在Fluent中,用户可以利用并行计算技术来加速求解复杂的流
体动力学问题。
并行计算可以将计算任务分配给多个处理器或计算
节点同时进行,从而提高计算效率和速度。
通过f_p,用户可以利
用多核处理器、集群系统或其他并行计算平台来加速Fluent的求解
过程,特别是对于大规模、高精度的流体动力学仿真问题来说,这
一功能显得尤为重要。
总的来说,Fluent是一款强大的流体动力学仿真软件,而f_p 则是其并行计算功能,能够帮助用户更高效地进行复杂流体流动问题的求解。
希望这个回答能够帮助你更好地理解Fluent和f_p。
FLUENT 软件的多重网格并行算法及其性能

FLUENT软件的多重网格并行算法及其性能余江洪1,朱宗柏1,2,肖金生1,3(1武汉理工大学材料复合新技术国家重点实验室,2现代教育技术中心,3汽车工程学院,湖北430070)摘要:FLUENT软件是目前国际上比较流行的通用CFD软件包,用于模拟从不可压缩到高度可压缩范围内的复杂流动,对大规模问题可用并行多重网格方法进行求解。
为了找出FLUENT软件的最佳解题规模和并行粒度,以期最大限度地发挥软件和硬件的效能,对FLUENT软件采用的多重网格方法和区域分裂法进行了理论分析,通过反复实验,重点讨论了在并行求解过程中,采用不同的多重网格循环方法、区域网格分裂方法、解题的规模和计算节点数对并行性能的影响。
FLUENT软件有良好的并行性能,PEM Fuel Cell模块可以进一步优化,HPCC还有很大的升级空间。
关键词:燃料电池;多重网格;区域分裂;并行计算;FLUENTFLUENT软件是一种CFD(Computational Fluid Dynamics)求解器,它可以求解各种复杂流动,包括不可压缩流动(低亚音速)、弱可压流动(跨音速)和强压缩性问题(超音速)。
1由于FLUENT软件有多种求解方法的选择,并且提供了多重网格方法来加快收敛速度,同时可以进行并行计算,因此它可以为速度范围很广的流动问题提供高效准确的最优求解方案。
本文介绍了FLUENT软件的多重网格及并行算法,并测试、分析了其并行性能。
1 FLUENT软件中的多重网格方法多重网格方法(MGM:MultiGrid Method)是一种高效的串行数值计算方法。
其基本思想是,利用粗网格上的残差校正特性消除迭代误差的低频分量(长波分量,即光滑误差),同时利用细网格上的松驰光滑特性消除迭代误差的高频部分(短波分量,即振荡误差),套迭代技术负责通过限制和插值算子连接所有网格层共同求解同一问题[1][2][3][4]。
多重网格循环可以定义为在每一个网格层面通过网格层次时在网格层面内应用的递归程序,该程序通过在当前层面完成单一网格循环来扩展到下一个粗糙网格层面。
fluent 经典问题 请问双CPU并行计算的效率问题

标 题: [合集] 请问双CPU并行计算的效率问题
发信站: BBS 水木清华站 (Mon Jul 7 03:32:43 2003), 站内
【 在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】
: 大致上只有一个CPU在工作,或者两CPU占有率相当于一个CPU
: mpich1.2.5+fortran
: 怎么配置可以使两个CPU同时工作??
: BOW
☆─────────────────────────────────────☆
: 发信站: BBS 水木清华站 (Fri Jul 4 11:20:32 2003), 转信
:
: 那看来你的意思就是每个节点当两个节点用了,是把:)
:
: 精华区有人说2CPU效率基本达到100%也是这样的喽?
:
:
: 主要是程序中有不少文件操作,那样的话会文件使用处突,得改文件名
你的意思是和算法有关?
那双CPU岂不白搭了,单CPU就ok了,呵呵
【 在 Jumping (Man in Experiments) 的大作中提到: 】
: 如果算法不怎么nb,也就这个效率了。
☆─────────────────────────────────────☆
xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:11:52 2003) 提到:
你就在每个domain中间加一点open mp的代码吧……也不是很麻烦……
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fluent 经典问题请问双CPU并行计算的效率问题.txt27信念的力量在于即使身处逆境,亦能帮助你鼓起前进的船帆;信念的魅力在于即使遇到险运,亦能召唤你鼓起生活的勇气;信念的伟大在于即使遭遇不幸,亦能促使你保持崇高的心灵。
发信人: rao (绕绕), 信区: NumComp标题: [合集] 请问双CPU并行计算的效率问题发信站: BBS 水木清华站 (Mon Jul 7 03:32:43 2003), 站内☆─────────────────────────────────────☆xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:03:44 2003) 提到:大致上只有一个CPU在工作,或者两CPU占有率相当于一个CPUmpich1.2.5+fortran怎么配置可以使两个CPU同时工作??BOW☆─────────────────────────────────────☆luxz (panda--在热死和冻死边缘挣扎) 于 (Fri Jul 4 11:04:57 2003) 提到: mpirun -np 2 *.exe【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 大致上只有一个CPU在工作,或者两CPU占有率相当于一个CPU: mpich1.2.5+fortran: 怎么配置可以使两个CPU同时工作??: BOW☆─────────────────────────────────────☆xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:06:27 2003) 提到:不是,你误解了我的意思再具体点说就是16个节点双CPU的集群,并行计算过程中每个节点的CPU效率大概只有50%【在 luxz (panda--在热死和冻死边缘挣扎) 的大作中提到: 】: mpirun -np 2 *.exe☆─────────────────────────────────────☆ Jumping (Man in Experiments) 于 (Fri Jul 4 11:07:30 2003) 提到:如果算法不怎么nb,也就这个效率了。
【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 不是,你误解了我的意思: 再具体点说就是16个节点双CPU的集群,并行计算过程中: 每个节点的CPU效率大概只有50%☆─────────────────────────────────────☆ luxz (panda--在热死和冻死边缘挣扎) 于 (Fri Jul 4 11:09:30 2003) 提到:在host文件中修改一下hostid; number of cpu you want to use; file path.然后要生成16*2=32 个domain,这样每个节点就会用2个cpu处理2个domain了【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 不是,你误解了我的意思: 再具体点说就是16个节点双CPU的集群,并行计算过程中: 每个节点的CPU效率大概只有50%☆─────────────────────────────────────☆ xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:09:35 2003) 提到:你的意思是和算法有关?那双CPU岂不白搭了,单CPU就ok了,呵呵【在 Jumping (Man in Experiments) 的大作中提到: 】: 如果算法不怎么nb,也就这个效率了。
☆─────────────────────────────────────☆ xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:11:52 2003) 提到:你的意思是修改machinefile??那样的话第二个选项应该是启动进程个数,不是CPU个数吧还有只希望每个节点2CPU处理一个domain。
【在 luxz (panda--在热死和冻死边缘挣扎) 的大作中提到: 】: 在host文件中修改一下: hostid; number of cpu you want to use; file path.: 然后要生成16*2=32 个domain,这样每个节点就会用2个cpu处理: 2个domain了☆─────────────────────────────────────☆ luxz (panda--在热死和冻死边缘挣扎) 于 (Fri Jul 4 11:11:53 2003) 提到:如果配置得当的话,即便算法不好,总体cpu使用率不高,但是峰值的cpu使用率还是可以超过50%的,如果cpu使用率始终低于50%,那就是配置的问题了。
呵呵我的程序平均平行效率也只有60%上下,//汗!,但峰值的时候还是可以达到100%的。
【在 Jumping (Man in Experiments) 的大作中提到: 】: 标题: Re: 请问双CPU并行计算的效率问题: 发信站: BBS 水木清华站 (Fri Jul 4 11:07:30 2003), 转信:: 如果算法不怎么nb,也就这个效率了。
: 【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: : 不是,你误解了我的意思: : 再具体点说就是16个节点双CPU的集群,并行计算过程中: : 每个节点的CPU效率大概只有50%::: --: ╭────────︿︿─────────╮: ║┃║: ║席拥飞花落絮,┃炉烹白雪清冰,║: ║┃║: ║坐林中锦绣团裀;┃熬天上玲珑液髓。
║: ╰────────︿︿─────────╯::: ※来源:·BBS 水木清华站 ·[FROM: 166.111.36.123]☆─────────────────────────────────────☆ luxz (panda--在热死和冻死边缘挣扎) 于 (Fri Jul 4 11:13:29 2003) 提到:当……两个cpu处理一个domain,那你让系统怎么处理,嘻嘻……除非你那个domain里面又有smp的代码……否则系统当然只能以串行的方式计算你的domain了,cpu使用率当然只有50%【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 标题: Re: 请问双CPU并行计算的效率问题: 发信站: BBS 水木清华站 (Fri Jul 4 11:11:52 2003), 转信:: 你的意思是修改machinefile??: 那样的话第二个选项应该是启动进程个数,不是CPU个数吧:: 还有只希望每个节点2CPU处理一个domain。
:: 【在 luxz (panda--在热死和冻死边缘挣扎) 的大作中提到: 】: : 在host文件中修改一下: : hostid; number of cpu you want to use; file path.: : 然后要生成16*2=32 个domain,这样每个节点就会用2个cpu处理: : 2个domain了::: --: 念来去,如水流: 徘徊久,叹息浓: 旧心情,情依旧: 愁自去,去更愁::: ※来源:·BBS 水木清华站 ·[FROM: 166.111.165.137]☆─────────────────────────────────────☆ xuzheng (天使暂时离开@_@反方向的钟) 于 (Fri Jul 4 11:20:32 2003) 提到:那看来你的意思就是每个节点当两个节点用了,是把:)精华区有人说2CPU效率基本达到100%也是这样的喽?主要是程序中有不少文件操作,那样的话会文件使用处突,得改文件名比较麻烦,呵呵【在 luxz (panda--在热死和冻死边缘挣扎) 的大作中提到: 】: 当……两个cpu处理一个domain,那你让系统怎么处理,嘻嘻……: 除非你那个domain里面又有smp的代码……否则系统当然只能以串行: 的方式计算你的domain了,cpu使用率当然只有50%☆─────────────────────────────────────☆ luxz (panda--在热死和冻死边缘挣扎) 于 (Fri Jul 4 11:23:13 2003) 提到:你就在每个domain中间加一点open mp的代码吧……也不是很麻烦……而且你的这个想法其实很好哦……如果在每个结点上作smp,可以减少很多mpi通信时间……【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 标题: Re: 请问双CPU并行计算的效率问题: 发信站: BBS 水木清华站 (Fri Jul 4 11:20:32 2003), 转信:: 那看来你的意思就是每个节点当两个节点用了,是把:):: 精华区有人说2CPU效率基本达到100%也是这样的喽?::: 主要是程序中有不少文件操作,那样的话会文件使用处突,得改文件名: 比较麻烦,呵呵:: 【在 luxz (panda--在热死和冻死边缘挣扎) 的大作中提到: 】: : 当……两个cpu处理一个domain,那你让系统怎么处理,嘻嘻……: : 除非你那个domain里面又有smp的代码……否则系统当然只能以串行: : 的方式计算你的domain了,cpu使用率当然只有50%::: --: 念来去,如水流: 徘徊久,叹息浓: 旧心情,情依旧: 愁自去,去更愁::: ※来源:·BBS 水木清华站 ·[FROM: 166.111.165.137]☆─────────────────────────────────────☆ cloudfly (阿斐) 于 (Fri Jul 4 11:26:53 2003) 提到:除了加入smp代码以外,只有改文件名了,而且我实践的结果是每个节点当两个节点的效率比每个节点使用smp要高所以推荐你改文件名。
【在 xuzheng (天使暂时离开@_@反方向的钟) 的大作中提到: 】: 那看来你的意思就是每个节点当两个节点用了,是把:): 精华区有人说2CPU效率基本达到100%也是这样的喽?: 主要是程序中有不少文件操作,那样的话会文件使用处突,得改文件名: 比较麻烦,呵呵☆─────────────────────────────────────☆ Jumping (Man in Experiments) 于 (Fri Jul 4 11:28:13 2003) 提到:那你前面说的50%的效率,难道值得是两个cpu只有一个工作,所以是50%?倒。