海伦市成兆食品有限公司
新闻动态
你的位置:海伦市成兆食品有限公司 > 新闻动态 > 并行缱绻时常有两种体式:分享内存体系

并行缱绻时常有两种体式:分享内存体系

2024-07-03 14:33    点击次数:155

并行缱绻时常有两种体式:分享内存体系

本文形色在OpenFOAM中使用并行缱绻的一些问题。

1 稽查CPU信息

当要缱绻的问题范畴较大时,时常需要接受多CPU并行缱绻以加速缱绻。在进行并行缱绻之前,不错诳骗高唱lscpu稽查本机的处理器信息。

如下图所示列出了本机的CPU信息。

阳曲县闫德贵运输服务部

图片

其中比拟迫切的信息包括:

CPU(s):列出了本机的逻辑CPU总额,如上图所示本机CPU共有24核Thread(s)per core:每核线程数。关闭超线程时候后,该参数为1;开启了超线程时候后,该参数时常大于1。Core(s) per socket:每个CPU的核数。如上图所示单颗CPU为12核Socket(s):CPU的数目。如上图所示本机上装置了2个CPU

在缱绻经过中,最迫切的信息是不错调用的最大CPU数目。如上图所示的缱绻机,能调用的最大CPU数目为24。

在Windows操作系统下,不错在职务科罚器中稽查现时CPU信息。如下图所示。

图片

CPU中的超线程时候(Hyper Threaded)并不成对OpenFOAM的求解缱绻产生匡助,该时候主若是为了提升CPU的多任务处明智商的,因此一般提倡在进行缱绻之前,关闭CPU的超线程时候。使用超线程的编造内核无意会裁减缱绻速率。

并行缱绻时常有两种体式:

分享内存体系,常见于使命站和便携式缱绻机散播式内存体系,常见于缱绻集群和超等缱绻机

底下是分享内存体系暗示图:

图片

分享内存体系

底下为散播式内存体系暗示图:

图片

2 OpenFOAM中的并行缱绻2.1 基本先容

OpenFOAM中的并行缱绻具备以下特色:

应用要津时常不需要并行特定的编码。并行编程完结对用户是荫藏的为了并走运行,您需要在系统中装置 MPI 库大多量应用要津和实用要津不错并走运行如果编写新的解算器,它将是并行的(大多量时间)照旧概况在多达15000个处理器上并走运行当今不错使用单个或多个GPU运行OpenFOAM

在OpenFOAM中并行缱绻,需要作念以下一些使命;

判辨缱绻区域。时常使用器用要津decomposePar对缱绻区域进行判辨,安达市成欧纸业有限公司该器用需要使用字典文献decomposeParDict在处理器或缱绻节点之间分拨功课。OpenFOAM通过使用MPI完结这一功能, 平乐县孔科干果有限公司每个处理器在分拨给其的缱绻区域中单独运行求解重建缱绻区域。缱绻结束后时常需要使用器用reconstrucPar完成这一使命。该器用无需任何的字典文献2.2 区域判辨

缱绻区域判辨需要使用器用decomposePar及配套字典文献decomposePartDict来完成。

在使用的经过中,不错在case目次中使用高唱foamGet decomposeParDict得回一个字典文献,该文献自动被舍弃到system文献夹中,如下图所示操作。

图片

该字典文献实践如下所示。

FoamFile{    version     2.0;    format      ascii;    class       dictionary;    object      decomposeParDict;}// * * * * * * * * * * * * * * * * * * * //// 指定参与缱绻的CPU数目,亦然区域被判辨的数目numberOfSubdomains  8; /* 可选的设施包括simple、hierarchincal、scotch、metis、manulal、multiLevel、structured等, 这里推选使用scotch设施,该设施仅需要指定CPU数目即可。这里使用的是hierarchical设施,需要指定各个标的判辨的数目*/method              hierarchical; simpleCoeffs{    n               (4 2 1); // 数目乘积即是numberOfSubdomains    delta           0.001;} hierarchicalCoeffs{    n               (4 2 1); // 数目乘积即是numberOfSubdomains    delta           0.001;    order           xyz;}

更多对于区域判辨设施的先容,焊接材料不错参阅源代码$WM_PROJECT_DIR/src/parallel/decompose/。

decomposePar高唱无需任何参数,径直输入高唱即可:

decomposePar

诳骗decomposePar不错将缱绻区域判辨成多个子区域,如下图所示。

图片

在每个处理器目次内,皆会存储网格信息、范围条目、运行条目以及该处理器缱绻成果数据。

2.3 并走运行

网格判辨后,就不错使用MPI进行并走运行。运行高唱体式为:

mpirun -np <NPROCS> <application/utility> -parallel

其中:

np:为CPU的数目,必须与decomposeParDict文献中指定的参数numberOfSubdomains保抓一致application/utility:应用要津或器用称号-parallel:并走运行标识,留意使用中不要健忘添加此标识2.4 区域组合

当并行缱绻结束后,不错使用高唱reconstructPar将诀别在各处理器目次下的数据集结汇总在所有这个词。

这个高唱很简便,不需要任何的参数:

reconstructPar

区域数据组合结束后,即可进行后处理。

留意:区域组合特别奢侈缱绻资源,且该高唱无法在并行花式下运行。

另一种替代决策为不使用reconstructPar,而在使用paraFoam时带上参数-builtin,即使用底下的高唱:

paraFoam -builtin

启动后在paraView中选拔Case Type为Decomposed Case。

图片

还有第三种处理样式。在每一个处理器文献夹中创建文献processorN.foam文献(这里的N为处理器编号),然后启动paraFoam并加载每一个processorN.foam文献。

留意:decomposePar与reconstructPar无法在并行花式下运行,因此在进行此类操作时,确保操作东机有饱和多的内存,不然对于大范畴问题容易发存一火机。

在OpenFOAM的求解器与器用要津中,有一些要津不辅助并行缱绻,这不错使用底下的高唱进行查找:

find $WM_PROJECT_DIR -type f | xargs grep -sl 'noParallel'

从复返的搜索成果中不错看到那些要津无法使用并走运行。

图片

如最常用的器用decomposePar与reconstructPar无法使用并行焊接材料,网格生成器用blockMesh也无法以并行花式运行。在使用这些要津时,确保缱绻机上有饱和的缱绻资源。

本站仅提供存储工作,所有这个词实践均由用户发布,如发现存害或侵权实践,请点击举报。

上一篇:孩子笑了骡马焊接材料尥蹶子了柳条动了
下一篇:没有了

Powered by 海伦市成兆食品有限公司 @2013-2022 RSS地图 HTML地图

Copyright 站群系统 © 2013-2024 SSWL 版权所有