关于并行correctBoundaryConditions的问题



  • 首先附图:

    0_1461552257854_12.png

    有两点疑问:

    1、并行的communicator: blocking, nonBlocking和scheduled是什么意思?我显示了defaultCommsType,默认的是nonBlocking,如果指定别的,如何实现?

    2、这里的nRequests()返回值看了源码,默认的是0,然而在这段代码中,好像并没有改成其他的值,waitRequests(0),又是什么意思?看了源码,waitRequests(label start)是个空函数体,没有具体的实现。



  • @Aeronastro

    Hi,

    这个在用户指南里面有提及过,略有印象,不过用户指南并没有细说,只是说这是三个不同类型。查了一下,这个人的解释很有意思:链接文本

    It is easy. Non-blocking means computation and transferring data can happen in the same time for a single process. While Blocking means, hey buddy, you have to make sure that you have already finished transferring data then get back to finish the next command, which means if there is a transferring followed by a computation, computation must be after the success of transferring.

    0_1461558519588_捕获.PNG

    在etc/controlDict里面有相关的设置:

    OptimisationSwitches
    {
        // On NFS mounted file system: maximum wait for files to appear/get
        // updated. Set to 0 on distributed case.
        fileModificationSkew 30;
    
        //- Modification checking:
        //  - timeStamp         : use modification time on file
        //  - inotify           : use inotify framework
        //  - timeStampMaster   : do time stamp (and file reading) only on master.
        //  - inotifyMaster     : do inotify (and file reading) only on master.
        fileModificationChecking timeStampMaster;//inotify;timeStamp;inotifyMaster;
    
        commsType       nonBlocking; //scheduled; //blocking; 此处
        floatTransfer   0;
        nProcsSimpleSum 0;
    
        // Force dumping (at next timestep) upon signal (-1 to disable)
        writeNowSignal              -1; //10;
        // Force dumping (at next timestep) upon signal (-1 to disable) and exit
        stopAtWriteNowSignal        -1;
    }
    


  • @cfd-china 十分感谢!:happy:


Log in to reply