Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. CFD性能怪兽之双机并联!

CFD性能怪兽之双机并联!

已定时 已固定 已锁定 已移动 OpenFOAM
2 帖子 2 发布者 7.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #1

    1000核CFD服务器之旅

    如何尽可能的榨干服务器的性能?

    自从我做单机塔式服务器之后,一直在思考这个问题。2021年春节的时候,就想启动机架式服务器业务。但是由于时间问题,一直卡在技术问题上解决不了。我自己也没有时间专门去弄。

    过去了一年,2022年春节,我们再次启动这个事情。春节真是个好东西,大家都在放假,节日氛围浓厚,我们可以利用这个时间,好好搞搞技术上这个事情。

    要做机架式服务器,最简单的就是从2台机器开始。我的小伙伴在春节期间废寝忘食的研究多节点并联技术。终于在刻苦奋战了实打实的3星期之后,彻底搞通了:

    1. 双机并联: 两台机器,通过网线连接,一起跑算例。等于是双节点。

    2. 多机并联: 多台机器,通过交换机连接。也就是机架式服务器。

    这其中的坑就不多说了,坑太多,每一个坑都要卡一阵子。虽然小伙子用了近一个月的时间在搞技术问题。我们还是决定将这部分技术开源。帮助更多的OpenFOAM用户,来玩一玩!感受一下性能巨兽的魅力!

    操作流程

    1. 最开始的,准备两台电脑,用网线连起来。

    2. 这两台电脑安装同样版本ubuntu真系统,Ubuntu终端输入ifconfig,出现如下界面:

      ad0c9a59-9375-4fdd-a96e-cbadea4d70d5-image.png

      5b2125be-d8b0-45bf-a728-682890bcc1fd-image.png

    3. 两个节点测试是否能够ping通:

      486a4037-1030-47eb-b0cd-24a670590106-image.png

      500c3779-e85b-450b-b731-980a01909489-image.png

    4. 修改两个节点的名称(例如node1,node2):输入指令:vim /etc/hosts 添加如下两行

      e00877a2-1769-499f-8cf4-e616ddaa1e24-image.png

    5. 下面建立SSH无密码连接,首先在两台机子上均输入命令: sudo apt-get install ssh 进行安装ssh。然后尝试两个计算机的有密码登录:例如在node1键入: ssh node2,然后在node2 键入: ssh node1,会有下面类似的显示:
      9df2fe14-7877-4b25-b61b-7b7ceadf178d-image.png 上面这个图是node1连接node2的,node2连接node1类似。确保没问题。

    6. 在node1中通过ssh-keygen生成公钥私钥对。输入ssh-keygen (键入完一路按回车)4c1fddd4-f27d-47cb-8c75-488500392435-image.png

    7. 通过ssh-copy-id复制node1的公钥到node2,命令见下图第一行:
      8d98bbb1-f79c-458e-84a2-41b9f7aed741-image.png 现在可以键入ssh node2 发现不用输入密码了,表示成功。

    8. 将上述操作在node2上进行(将node2的公钥复制到node1),键入ssh node1 发现不用输入密码了,表示成功。

    9. node1和node2上均需要键入安装NFS: sudo apt-get install nfs-kernel-server nfs-common

    10. 下载过后两个节点均建立共同挂载文件夹(mpicluster):

      mkdir mcluster 
      
    11. 在node1节点上编辑/etc/exports文件(共享文件夹访问权限设置),键入sudo vi /etc/exports,在文件最下下添加如下一行:

      /home/dyfluid/mcluster *(rw,sync,no_root_squash,no_subtree_check)
      

      140424b9-9b3d-4b34-8084-795cdc46f3fe-image.png

    12. 重新启动服务,键入sudo /etc/init.d/nfs-kernel-server restart,之后查看共享文件夹是否是mcluster,键入showmount -e,会显示下图09dd9aa3-81a1-405e-a38f-ad44d4e61508-image.png

    13. 将node2挂载在mpicluster文件夹下,node2下键入sudo mount -t nfs node1:/home/dyfluid/mcluster cluster

    14. 测试:在node1下mcluster文件夹中建立文件,在node2的mcluster中也能看见即为挂载成功!

    15. 下面建立openmpi并行计算环境。在文件夹中下载of-9和ThirdParty-9,编译,然后在两台节点的~/.Bashrc中添加如下两行,将运行环境保证在挂载文件夹里():

      source ~/mcluster/OpenFOAM-9/etc/bashrc
      alias of9="source ~/mcluster/OpenFOAM-9/etc/bashrc"
      

      c8468820-029b-4fb6-9af7-087c55c0558a-image.png

    16. 我们在挂载文件夹mcluster中需要运行的文件夹(这里面我用dambreak)之中放置配置文件,文件可以任意起名,例如:machines和hostfile,进而去设置调用每一个节点的核数,配置格式如下:
      566042c9-3987-408f-bb01-64aa1f6cb2b3-image.png

    17. 分块之后输入并行指令:

      mpirun -hostfile machines -n 4 interFoam -parallel
      

      已经可以跑起来了!
      b8bfc286-27fb-4ebd-8fe7-a409652ba8f9-image.png

    18. 目前DM服务器:

    • Fluent单机需要跑90秒的,双机并联也可以跑到50秒!

      具体的scale性能,跟CFD求解器,mpi并行库,以及硬件网络带宽等都有关系。你们自己连起来之后,应该有类似的scale特征。

    最后

    将单塔式服务器,拓展到双机并联、甚至机架式服务器的时候。CFD计算的性能牵涉到太多的因素。现在我们双机并联的测试基本上已经完事,在频繁的测试多节点机架式服务器。机架式服务器的测试,远远比单塔式服务器的参数要多。测试起来还真不容易。

    本文讨论的双机并联,相对来说硬件需求低,配置相对简单。但软件配置,如果稍有差错,就会连接不成功。只能祝愿大家尽快出坑了。。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    R 1 条回复 最后回复
  • R 离线
    R 离线
    rex
    在 中回复了 李东岳 最后由 编辑
    #2

    @李东岳 李老师真是无私啊,正好公司想把两台工作站并联,你这直接有现成的教程!

    1 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]