情報のNECTAR

気になった事をメモします。

Infinibandの基本情報

この記事について

 この記事は、InfiniBandに詳しくない私が一般的な内容を調べてまとめたものです。専門家ではありません。嘘を書いてしまっていたら、教えてください。すごく勉強になります。

InfiniBandとは

 インターコネクト・プロトコルの一種[1] 。HPCクラスタにおけるノード間の双方向型シリアル接続に使われる。たいてい、なじみのあるネットワークはEtherなので、InfiniBandを使いこなせている人に出会うことは少ない。このように、開発を進める上で有識者が乏しいことや、参考資料が見つけにくいことが欠点である。そんなInfiniBandには、3つの利点がある。1.高速通信 2.低レイテンシ 3.低価格 である。詳しくは下記の記事内にある「InfiniBandのメリット」が参考になる。
www.nicpartners.co.jp 
 ただし、最大限の恩恵を得るためにはRDMAの環境構築が必要となることに注意しなくてはならない。RDMAであればCPUを介さずにデータ転送ができるため、高効率な通信が可能となる。このような素晴らしいプロトコルが実装されているInfiniBandだが、一応IPoverIBというTCP/IPに対応したプロコルも準備されている。IPoverIBを使えば、ユーザーはInfiniBandを意識せずにアプリケーションを開発でき、InfiniBandの広帯域通信の恩恵を受けることができる。

InfiniBandの転送速度

 InfiniBandではリンク速度に下記の名称がついている。

  • Single Data Rate ( SDR )
    リンク速度:2.5Gbps
  • Double Data Rate ( DDR )
    リンク速度:5Gbps
  • Quad Data Rate ( QDR )
    リンク速度:10Gbps
  • Fourteen Data Rate(FDR)
    リンク速度:14Gbps
  • Enhanced Data Rate ( EDR )
    リンク速度:25Gbps 

 個人的に、Single、Double、Quadときて、Fourteen?(14Gbpsだからか。。)、Enhanced!?なので、ちょっと覚えにくい。ちなみに、今後はHDR(High Data Rate)、NDR(Next Data Rate)が続くらしい[2]。
 転送速度は、HCAが4レーン(4X)の接続に対応できるので、上記のリンク速度の4倍となり、実効速度は0.8掛けとなる。これは8b/10b(IBMが開発した高速シリアル転送方式。8ビットのデータを10ビットのデータに変換して転送する。)[3]によるものである。当然、本当か?という疑問が湧く。実際やってみれば良いが、IBの機材は高額のため、ここで計測結果を示すことはできない。参考として、計測結果が出ているの下記のリンクを貼っておく。
http://hpcdiyc.hpc.co.jp/topics14.htmlhpcdiyc.hpc.co.jp
 この結果によれば、理論値(QDR)の最大実効速度くらいがだせていることを確認できる。また、データサイズを十分に大きくすると速度が一定になることも確認できる。サイズと速度の関係は分かりにくいので、ここではデータサイズと通信時間の関係にグラフをなおした。

データサイズと通信時間の関係

 上記のグラフは計測結果が出ているサイト(前述)の数値データをグラフ化したもので、データの詳細な妥当性を私は保証できないが、QDRのノード間通信をOSU Micro-Benchmarksで計測した結果かと思われる。このグラフからわかることは、十分にサイズが大きい場合は一定の速度で転送されるため、サイズと転送時間は比例関係となることだ。言い換えると、0.5MB程度以上のデータ通信においては、線形に転送時間を見積もることができ、逆にそれ以下であれば、非線形な見積りが必要ということになる。ただし、この結果は2ノード間の結果であり、ノードが増える場合は転送時間がさらに大きくなることに注意しなくてはならない。

InfiniBandの用語

 InfiniBandはEthernetとは全く別物ではあるが、似たような構成要素があるので、次のような感じで見ると理解の助けとなる。
HCA(Host Channel Adaptor):NICみたいなの。
GUID(Globally Unique Identifier):MACアドレスみたいなの。
LID(Local Identifier):IPアドレスみたいなの。
QP(Queue Pair):ソケットみたいなの。
QPアドレス:ポート番号みたいなの。

<参考>

[1] https://www.alt.macnica.co.jp/library/191/
[2] https://www.hpc-sol.co.jp/support/20110805_infiniband_bandwidth.html
[3] 8b/10b - Wikipedia

気に入っている言葉

クラークの三法則

  1. 高名で年配の科学者が可能であると言った場合、その主張はほぼ間違いない。また不可能であると言った場合には、その主張はまず間違っている。
  2. 可能性の限界を測る唯一の方法は、不可能であるとされることまでやってみることである。
  3. 十分に発達した科学技術は、魔法と見分けがつかない。
    クラークの三法則 - Wikipedia