zoukankan      html  css  js  c++  java
  • MPII/O(基于ROMIO)对NFS配置的要求

    如果我们的并行程序使用了MPI定义的I/O函数的话(在MPICH中是ROMIO这个库),那么,我们在配置NFS的时候是有一些特殊的地方的:

    1、要求NFS的版本至少是3

    2、要求nfslock这个service一定要打开

    3、要求从节点在/etc/fstab文件中定义mount主节点的NFS的目录的时候,option一栏不能填defaults,至少要将 noac(no attribute cache)这个option配上(该配置不允许NFS缓存文件的属性,虽然noac会降低一些性能,但是它能保证在有多个NFS client读写文件的时候,都能正确读写数据)。

    长见识啊!这里还有篇参考文档,这个文档中作者还配置了bg和intr这两个option,其中bg很有用,这表示当NFS连不上的时候,第二次 重试连接开始,将在后台执行(默认配置进程都在前台执行,所以以前当NFS连不上的时候,登录都无法登录,很痛苦啊);intr这个option将允许 NFS中断一个文件读写操作(当NFS连接出现的问题的时候),NFS将返回一个EINTR的signal给调用程序处理,默认情况下这是不会的,换句话 说,文件操作错了还会继续往下操作。

    这里是这篇文章,写的不错:


    上述问题,出错的错误信息大致如下:


    RESULTS FOR RESTART ARE WRITTEN ON FILE 11

    File locking failed in ADIOI_Set_lock. If the file system is NFS, you need
    to use NFS version 3, ensure that the lockd daemon is running on all the
    machines, and mount the directory with the 'noac' option (no attribute
    caching).

    [0] MPI Abort by user Aborting program !

    [0] Aborting program!

    p0_6662: p4_error: : 1

    forrtl: error (69): process interrupted (SIGINT)

    rm_l_1_6702: (72.949219) net_send: could not write to fd=5, errno = 32

    p1_6666: (72.949219) net_send: could not write to fd=5, errno = 32

    "Napa6.500M.o7" 633L, 48056C

    经过测试,发现,在不同速率的网络结构下,这种问题出现的比较普遍

    比如,在一个cluster中,有些节点是百兆的速度,有些节点是千兆的速度,那么,他们混合计算的时候,NFS没有配置好,就会出现上述的错误,而且几率很高。如果都是百兆或是千兆的话,出现这种问题的概率还是比较低的。
     

  • 相关阅读:
    new
    如何在win7上面安装python的包
    进程
    网络编程模块的使用
    面向对象基础与实例
    类与对象的属性与使用方法
    基础面向对象与面向过程
    RE模块垃圾回收机制
    常用函数模块
    thinkphp6 find_in_set使用实例
  • 原文地址:https://www.cnblogs.com/super119/p/2025529.html
Copyright © 2011-2022 走看看