OpenFOAM并行计算
-
大佬们,想请教下为什么OpenFOAM自定义并行计算时,初始化(这边初始化是指下述的代码)有时候很快2-3s,有时候需要很久1-2min(测试的时候没有其他程序运行)。
下述是我自定义的并行计算初始化代码:scalarField MyField(5*N,0); List<scalarField> AllMyField_List(Pstream::nProcs()); AllMyField_List[Pstream::myProcNo()] = MyField; Pstream::gatherList(AllMyField_List); Pstream::scatterList(AllMyField_List); scalarField AllMyField(ListListOps::combine<scalarField>(AllMyField_List, accessOp<scalarField>()));
其中,N为所有网格单元的数量,N=86400。程序是有个变量,我将其分配到各个线程进行计算,在总线程中进行收集。
此外,程序中不止这一个变量,有五六个需要同样操作的变量。之前测试过,如果N很小的时候,初始化过程很快,但是当N增大时,初始化时间就完全不一样了。想请教下如何解决这个bug。