超算上并行计算问题



  • 各位前辈好!

    自己现在在学校的超算系统上跑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哪里出了问题吗?



  • 麻烦哪位好心人给一下openfoam3.0.0的安装包呢?官网上竟然下载不了,谢谢



  • 你这个是发散了啊,为什么要重新安装openfoam呢

    另外,https://github.com/OpenFOAM/OpenFOAM-3.0.x 这个不可以下载么



  • @东岳 感谢东岳老师的回复,但我看了一下流场,不管是速度 压力 还是温度,都是正常的呀,为什么老师您说是发散了呢?



  • @小考拉 只不过是输出的最后一个时间步正常的,但没准再算10个时间步就发散了 :chigua:



  • 你可以试一下这里面的方法链接文本,这个报错一般就是指你的算例发散了,这个方法有可能会让你多算几步,但如果计算本身是发散的,你检查log文件时还是会看到发散的结果。这种发散有可能是超算本身的问题,我之前用超算算过一个算例的不同工况,但是总有一些特定的工况在超算上会报fork error,但是在我的台式机里就没有问题。你最好先在自己的设备里完整运行一遍,确定是不是发散的问题。



  • 好的,我去试一试,谢谢前辈指点:chigua:


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2