超算上并行计算问题
-
各位前辈好!
自己现在在学校的超算系统上跑case,调用了自己账户下面安装的of3.0的compressibleInterFoam(自己修改了求解器里面的部分代码),并行计算调用了openmpi 2.1.5,但并行计算经常会突然出现下面这个错误
A process has executed an operation involving a call to the "fork()" system call to create a child process. Open MPI is currently operating in a condition that could result in memory corruption or other system errors; your job may hang, crash, or produce silent data corruption. The use of fork() (or system() or other calls that create child processes) is strongly discouraged. The process that invoked fork was: Local host: [[37777,0],5] (PID 31599) If you are *absolutely sure* that your application will successfully and correctly survive a call to fork(), you may disable this warning by setting the mpi_warn_on_fork MCA parameter to 0. -------------------------------------------------------------------------- [5] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [5] #1 Foam::sigSegv::sigHandler(int) at ??:? [5] #2 ? in "/lib64/libc.so.6" [5] #3 ? at btl_vader_component.c:? [5] #4 opal_progress in "/software/openmpi/2.1.5/lib/libopen-pal.so.20" [5] #5 ompi_request_default_wait_all in "/software/openmpi/2.1.5/lib/libmpi.so.20" [5] #6 PMPI_Waitall in "/software/openmpi/2.1.5/lib/libmpi.so.20" [5] #7 Foam::UPstream::waitRequests(int) at ??:? [5] #8 Foam::lduMatrix::updateMatrixInterfaces(Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::Field<double> const&, Foam::Field<double>&, unsigned char) const at ??:? [5] #9 Foam::lduMatrix::Amul(Foam::Field<double>&, Foam::tmp<Foam::Field<double> > const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char) const at ??:? [5] #10 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [5] #11 Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) const at ??:? [5] #12 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? [5] #13 Foam::GAMGPreconditioner::precondition(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [5] #14 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [5] #15 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) at ??:? [5] #16 Foam::fvMatrix<double>::solve(Foam::dictionary const&) at ??:? [5] #17 ? at ??:? [5] #18 __libc_start_main in "/lib64/libc.so.6" [5] #19 ? at ??:? srun: error: n0025: task 5: Segmentation fault
仔细检查发现流场没有问题,怀疑是超算并行的问题,换节点和分区依然没有什么效果,
请问大家用超算的时候有没有出现过类似的错误呢?难道是我自己在账户下面安装的of3.0哪里出了问题吗?