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

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

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アドレス:ポート番号みたいなの。

所感

 InfiniBandに関する情報はWeb検索でいくらか得られますが、書籍のようにしっかり編集された資料は少なく、情報収集のコストがかかる印象を受けました。今後は、近年の情報技術重視による波に乗り、HPC技術に関心が集まることで、InfiniBandに関する情報もまとめられていくのではないかなと期待しています。

<参考>

[1] 図解でわかる!インフィニバンド豆知識 | 株式会社マクニカ アルティマ カンパニー
[2] 株式会社HPCソリューションズ 〜 技術情報 インフィニバンドの帯域幅について Infiniband SDR DDR QDR FDR FDR10 EDR PCI Express Gen 3
[3] 8b/10b - Wikipedia

はじめに

私について

若手のSEです。大学では機械工学を専攻していましたが、研究室で信号処理に出会ったことから、社会人ではソフトウェアを学ぶ必要にかられてます。学生時代、情報工学はなんか俗っぽい学問であまり好きじゃないなと思っていたのですが、最近は社会における重要性を肌で理解しつつあります。

記事を書く目的

1.自分が後で使える技術情報をまとめておくため
2.なんとなく理解していることをしっかり理解するため
3.人に説明できるようにするため

興味のある分野

デジタル信号処理、計算機工学、機械工学、Linux、電波、安全保障技術、基礎数学、情報工学、組み込みシステム、プログラミング、ラズパイ、SW開発方法論 など。

注意したいこと

・記事を書きすぎない
 技術者は記者ではないからです。
・参考元を明らかにする
 根拠の無い文章はただの感想だからです。
・シンプルに書く
 分かりにくい上に長い文書は誰からも愛されないからです。
・適当に書く
 私は専門家ではないからです。

最後に

 好きな言葉があります。

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

 上記は有名なクラークの三法則です。第1法則は、技術者に必要な謙虚さを示すのと同時に、新技術の芽は常に身近にあることを思い出させてくれます。
 第2法則は、技術を理解するシンプルな考え方を示してくれます。この法則は、性能評価の方法としてだけでなく、人生訓としても大切な考え方だと思います。
 第3法則は、技術の深淵さを上手く表現しており、(中学2年生的な感じで)かっこよくてなんか好きです。この法則の「魔法」という表現は、非論理的で大袈裟とも思われますが、技術革新により複雑さが増大する現代の技術体系は正に魔法と言って過言でありません。現に、Linuxカーネルのソースを完全に理解するだけでも100年以上かかってしまい[1]、個人がすべての技術を理解することは不可能です。

<参考>

[1] 誰も読まないOSのソース・コード | 日経 xTECH(クロステック)