自定义求解器在单核下运行无误在mpirun下报错
-
平台:openfoam5.0
并行环境:超算平台MPIINTEL
问题描述:新的求解器在单核下运行不报错,并行环境报错为Fatal error in MPI_Recv: Message truncated, error stack: MPI_Recv(224).....................: MPI_Recv(buf=0x7fff3fd36bb4, count=4, MPI_BYTE, src=10, tag=1, MPI_COMM_WORLD, status=0x7fff3fd36610) failed MPIDI_CH3U_Receive_data_found(131): Message from rank 10 and tag 1 truncated; 24 bytes received but buffer size is 4
测试:(1)纯欧拉-欧拉求解器并行运行无错误
(2)DPMFoam并行无错误
初步判定为自定义的拉格朗日入射模型无法并行:
主要为在kinematicCloud中添加了自定义入射模型:
(1) 每个时间步开始在kinematicCloud使外用new操作添加入射模型:
kinematicCloud.updateatomizers
(
i,
SOI,
nParticle,
position,
U0,
diameter,
rhoLiq,
duration,
parceltoinject
);
(2) 入射模型
(3) 在kinematicCloud内部使用使用ptrList自带的clear函数清除入射模型,该函数调用了delete 操作删除添加的入射模型。另外超算平台使用的是intelmpi没法用mpirunDebug
mpirunDebug -np 24 HybridFoam –parallel
出现错误Unsupported WM_MPLIB setting : INTELMPI。
有什么解决办法吗? -
@yfclark 在 自定义求解器在单核下运行无误在mpirun下报错 中说:
问题找到了,原因是类一旦被实例化后,其内存大小是不能更改的,现在采用LinkList代替List,没有问题
您好,可以具体讲讲吗,我是在KinematicCloud.C加静态方法之后无法并行了 ,不知道是不是跟您一样的问题。