オーストラリアハイギョのブログ

ただのオーストラリアハイギョです。

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の機材は高額のため、ここで計測結果を示すことはできない。参考として、計測結果が出ているの下記のリンクを貼っておく。
hpcdiyc.hpc.co.jp
 この結果によれば、理論値(QDR)の最大実効速度くらいがだせていることを確認できる。また、データサイズを十分に大きくすると速度が一定になることも確認できる。サイズと速度の関係は分かりにくいので、ここではデータサイズと通信時間の関係にグラフをなおした。

f:id:SuperShooter:20190501171352p:plain
データサイズと通信時間の関係

 上記のグラフは計測結果が出ているサイト(前述)の数値データをグラフ化したもので、データの詳細な妥当性を私は保証できないが、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] 図解でわかる!インフィニバンド豆知識 | 株式会社マクニカ アルティマ カンパニー
[2] 株式会社HPCソリューションズ 〜 技術情報 インフィニバンドの帯域幅について Infiniband SDR DDR QDR FDR FDR10 EDR PCI Express Gen 3
[3] 8b/10b - Wikipedia