万人のためのハイパフォーマンスコンピューティング

HPC Do It Yourself Club

      HOMEE5-2600v3製品情報お役立ち情報購入案内お問い合わせ会社案内
      ムービーダウンロードドキュメント最新トピックスおもしろLinkHPCノウハウ

4 Node FDR Infiniband Cluster性能評価
OpenMPIとOpenMPのHybrid実行でのMustオプション
OpenMPIで別ノードの環境変数をセットするには

InfiniBand QDR vs. Gb Ethernet

その3の最後:NFSでの速度比較 Writeで

(最新のドライバーでの性能比較はコチラ

(FDR Infinibandでの性能評価はコチラ

前の記事からの続き
 とりあえず何も考えずに、10GBのファイルをNFS経由で書き込み、時間を測ってみよう。書き込みと直後のsync時間とを測定する。書き込みはNFSがマウントされているhpc02上で行うが、syncはNFSをexportしているhpc01上で行う。
 最初に、Gigabit Ethernet経由でHDDに書き込みを行う。
[root@hpc01 ~]# ssh hpc02
[root@hpc02 ~]# cd /nfs
[root@hpc02 nfs]# ls
hdd hddib ssd ssdib
[root@hpc02 nfs]# cd hdd
[root@hpc02 hdd]# time dd if=/dev/zero of=zero1 bs=1G count=10; time ssh hpc01 sync
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 137.434 s, 78.1 MB/s

real 2m17.500s <ー書き込みの時間
user 0m0.001s
sys 0m8.841s

real 0m0.361s <ーsyncの時間
user 0m0.015s
sys 0m0.005s
書き込み速度がGigabit Ethernetの速度に比べても遅い。syncには全く時間がかかっていない。
 次に、IPOIB経由でSSDに書き込みを行う。
[root@hpc02 hdd]# cd /nfs/ssdib
[root@hpc02 ssdib]# !time
time dd if=/dev/zero of=zero1 bs=1G count=10; time ssh hpc01 sync
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 24.324 s, 441 MB/s

real 0m24.372s <ー書き込みの時間
user 0m0.000s
sys 0m10.011s

real 0m0.289s <ーsyncの時間
user 0m0.013s
sys 0m0.009s
こちらも遅く、syncには全く時間がかかっていない。
 つまり、書き込みはsyncが終わるまで戻ってこない設定になっている事がわかった。これは手堅い設定ではあるが、スピード重視のHPCでは使いものにならない。書き込みではキャッシュに書き終わったら即戻ってきて、次の計算に移れないと、CPUが遊んでしまうからだ。
 hpc01の/etc/exportsを見てみよう。
[root@hpc02 ssdib]# exit
logout
Connection to hpc02 closed.
[root@hpc01 ~]# cat /etc/exports
/home 192.168.1.0/255.255.255.0(rw,no_root_squash)
/opt 192.168.1.0/255.255.255.0(rw,no_root_squash)
/etc/lava 192.168.1.0/255.255.255.0(rw,no_root_squash)
/hdd 192.168.2.0/255.255.255.0(rw,no_root_squash)
/hdd 192.168.1.0/255.255.255.0(rw,no_root_squash)
/ssd 192.168.2.0/255.255.255.0(rw,no_root_squash)
/ssd 192.168.1.0/255.255.255.0(rw,no_root_squash)
これを次のように修正する。
[root@hpc01 ~]# cat /etc/exports
/home 192.168.1.0/255.255.255.0(rw,async,no_root_squash)
/opt 192.168.1.0/255.255.255.0(rw,async,no_root_squash)
/etc/lava 192.168.1.0/255.255.255.0(rw,async,no_root_squash)
/hdd 192.168.2.0/255.255.255.0(rw,async,no_root_squash)
/hdd 192.168.1.0/255.255.255.0(rw,async,no_root_squash)
/ssd 192.168.2.0/255.255.255.0(rw,async,no_root_squash)
/ssd 192.168.1.0/255.255.255.0(rw,async,no_root_squash)
赤字が修正箇所になる。修正適用前のNFS export状態は。
[root@hpc01 ~]# exportfs -v
/home 192.168.1.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/opt 192.168.1.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/etc/lava 192.168.1.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/hdd 192.168.2.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/hdd 192.168.1.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/ssd 192.168.2.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
/ssd 192.168.1.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
だが、
[root@hpc01 ~]# exportfs -ra
で修正を適用すると、
[root@hpc01 ~]# exportfs -v
/home 192.168.1.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/opt 192.168.1.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/etc/lava 192.168.1.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/hdd 192.168.2.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/hdd 192.168.1.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/ssd 192.168.2.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)
/ssd 192.168.1.0/255.255.255.0(rw,async,wdelay,no_root_squash,no_subtree_check)

になる。このように設定すれば、
[root@hpc01 ~]# ssh hpc02
[root@hpc02 ~]# cd /nfs
[root@hpc02 nfs]# ls
hdd hddib ssd ssdib
[root@hpc02 nfs]# cd hdd
[root@hpc02 hdd]# ls
zero1
[root@hpc02 hdd]# time dd if=/dev/zero of=zero2 bs=1G count=10
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 94.6667 s, 113 MB/s

real 1m34.696s
user 0m0.001s
sys 0m9.814s
となり、Gigabit Ethernetなりのスピードで書き込めるようになった。
 IPOIB経由のSSDでは、
[root@hpc02 hdd]# cd ..
[root@hpc02 nfs]# ls
hdd hddib ssd ssdib
[root@hpc02 nfs]# cd ssdib
[root@hpc02 ssdib]# ls
zero1
[root@hpc02 ssdib]# time dd if=/dev/zero of=zero2 bs=1G count=10
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 12.7415 s, 843 MB/s

real 0m12.749s
user 0m0.000s
sys 0m8.140s
843MB/sとなり、直接書き込みの771MB/sよりも高速だ。キャッシュの効果が現れている。してみると、IPOIB経由でHDDに書き込めば、HDDの速度を上回るのでは、と想像できる。実際に試してみよう。
[root@hpc02 ssdib]# cd ..
[root@hpc02 nfs]# ls
hdd hddib ssd ssdib
[root@hpc02 nfs]# cd hddib
[root@hpc02 hddib]# ls
zero1 zero2
[root@hpc02 hddib]# time dd if=/dev/zero of=zero3 bs=1G count=10
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 12.3641 s, 868 MB/s

real 0m12.401s
user 0m0.000s
sys 0m8.818s
868MB/sとなり、HDDの書き込み速度を遥かに上回る速度になった。
 つまり、ファイルサーバーのキャッシュが空いている限り、ファイルサーバーへの書き込み速度は、HDDやSSDなどの書き込み速度には無関係に、ネットワークの速度で決まる、ということがわかった。勿論、ファイルの書き込みをHDDやSSDの速度を上回る速度で連続して行えば、そのうちHDDやSSDの速度になってしまう。しかし、キャッシュのサイズが大きければ(この例では256GB)、実用的なサイズでは、ほとんどネットワークの速度で書き込めるかもしれない。
 参考のため、10GBのファイルを50個、合計500GB連続書き込みを行い、書き込み速度がどのように変化するか調べてみた。IPOIB経由のHDD書き込みはこちらhdd_ipoib_wr2.txtになる。50GBくらいまでは、ネットワークの速度で書き込めているようだ。IPOIB経由のSSD書き込みはこちらssd_ipoib_wr.txtになる。こちらは、100GBくらいまでは、ネットワークの速度で書き込めているようだ。
 InfiniBandの効果は、NFSのReadとWriteで非常に大きく、もはやファイルサーバーをGigabit Ethernetで接続するのは時代遅れとも思わせる結果が得られた。ファイルサーバーの速度でお悩みの方は、InfiniBandの導入を考えてみてはいかがだろうか。InfiniBand製品はコチラ

 

(次回に続く)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Copyright (C) HPCシステムズ株式会社. All Rights Reserved.