Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
0円でできる自宅InfiniBandプ
ログラム
第九回 カーネル/VM探検隊
2013/12/8
自己紹介
•
•
•
•
•

名前:中村 実
所属:武蔵中原周辺のIT企業
Mail: nminoru@nminoru.jp
Twitter:@nminoru_jp
Web:http://www.nminoru.jp/~nminoru/

今...
InfiniBandとは?
• 高帯域・低遅延のネットワーク装置
– 高帯域
• 56Gbps(FDR)×2、Point-to-Pointの輻輳制御

– 低遅延
• 1スイッチレイテンシが2μ秒以下

– コピーゼロ
• 無駄なコピーがない!...
誰がInfiniBandを作っているのか?
• InfiniBand Trade Association
– http://www.infinibandta.org/

• OpenFabrics Alliance
– IBのソフトウェアスタッ...
InfiniBandはどこで使われている
か?
• 用途
– HPC
• SC13で公開されたTOP500中207システムで利用

– 金融
• ニューヨーク証券取引所(NYSE)のバックボーン

– ストレージ、DB
• EMC Isilon...
InfiniBandのプロトコルスタック
名称

用途

Verbs

IBの機能を直接使用可能なlow-level API

rmdacm

Verbsのうちコネクション確立の部分をラップしたAPI。
CMはCommunication Man...
Ethernet&IPとの対比
Ethernet

IB

カード

ネットワークカード
(NIC)

Host Channel Adaptor(HCA)

固有ID

MACアドレス(48ビッ
ト)

GUID(64ビット)

ネットワークア...
InfiniBandプログラミングに必要な
もの
• 標準的なLinuxディストリ
• パッケージ
– rdma
– libibverbs
– libibverbs-devel

• ヘッダーファイル
– #include <infiniban...
Verbsの通信モデル
• Services
– RC(XRC)、RD、UC、UDの4(+1)種類
• Reliable(再送制御あり)、Unreliable(なし)
• Connection(送信順序あり)、Datagram(なし)

– R...
Verbsの通信モデル(cont.)
• Queue Pair(QP)
– 内部にSend Queue(SQ)とReceive Queue(RQ)
– ibv_create_qpで作成
QP

QP

ibv_post_send

SQ(Sen...
SEND-RECV
• Receiverあらかじめ登録した受信バッファへ
転送
ibv_post_send

QP

SQ

RQ

QP

SQ

RQ

ibv_post_recv

• 制限
– Senderが送信する前にReceiver...
SEND-RECV(cont.)
• メモリをどう扱うか?
– ユーザプログラムがmallocやmmapしたメモリ
をibv_reg_mrで登録
– ibv_reg_mrで登録したメモリはカーネルがpin
して仮想メモリ→物理メモリのマップを固...
SEND-RECV(cont.)
• どのようにして完了を検知するか?
– Completion Queue(CQ)
• ibv_poll_cqでWork Completion(WC)が取り出せる

– Completion Channel
•...
RDMA WRITE
• リモートのメモリアドレスを指定して
WRITE
– リモート側は自分のメモリがWRITEされたこ
とを検知できない

ibv_post_send

QP

SQ

RQ

QP

SQ

RQ

Remote
Memo...
RDMA WRITE with Immediate
• RDMA WRITEと同じだが書込み完了をRQを
使って通知する
– 4バイトの即値も一緒に送れる

ibv_post_send

QP

SQ

RQ

QP

SQ

RQ

Remo...
RDMA READ
• リモートのメモリアドレスを指定して
READ
– リモート側は自分のメモリがREADされたこと
を検知できない

ibv_post_send

QP

SQ

RQ

QP

Remote
Memory
SQ
RQ
Atomic操作
• リモートのメモリ空間に対して、8バイト
境界に沿う8バイトに対してアトミック操
作が可能。
– Compare-and-Swap
– Fetch-and-Add

• リモートは操作を受けたことを検知でき
ない。
• Fe...
How much?
• 機器のお値段
–
–
–
–

1ポートHCA(97,900 円)
2ポートHCA(153,200円)
QSFPケーブル(14,050円)
8ポートスイッチ(288,400円)

• InfiniBandプログラムをはじ...
Pseudo InfiniBand (pib)
• 実機ハードが不要の疑似IBドライバ
• UDPを使ってIBをエミュレーション
• 現状では1ノード内だけで動作

• リンク
– http://www.nminoru.jp/~nminoru/...
参考ページ
• InfiniBand Trade Association
– http://www.infinibandta.org/
– レジストするとIBの仕様書(InfiniBand Architecture Specification
...
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
InfiniBandで構築する ちょっと高可用なHypver-V VMクラスタ ~Windows Server 2012 対応~
Next
Upcoming SlideShare
InfiniBandで構築する ちょっと高可用なHypver-V VMクラスタ ~Windows Server 2012 対応~
Next
Download to read offline and view in fullscreen.

Share

0円でできる自宅InfiniBandプログラム

Download to read offline

InfiniBand Verbs/RDMAプログラムのさわりと、実機が不要なsoftware-based InfiniBand driverの紹介。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

0円でできる自宅InfiniBandプログラム

  1. 1. 0円でできる自宅InfiniBandプ ログラム 第九回 カーネル/VM探検隊 2013/12/8
  2. 2. 自己紹介 • • • • • 名前:中村 実 所属:武蔵中原周辺のIT企業 Mail: nminoru@nminoru.jp Twitter:@nminoru_jp Web:http://www.nminoru.jp/~nminoru/ 今日はInfiniBand(RDMA)プログラミングのさ わりと、私が開発中のsoftware-based InfiniBand driverの紹介をします。
  3. 3. InfiniBandとは? • 高帯域・低遅延のネットワーク装置 – 高帯域 • 56Gbps(FDR)×2、Point-to-Pointの輻輳制御 – 低遅延 • 1スイッチレイテンシが2μ秒以下 – コピーゼロ • 無駄なコピーがない! – RDMA (Remote Direct Memory Access)
  4. 4. 誰がInfiniBandを作っているのか? • InfiniBand Trade Association – http://www.infinibandta.org/ • OpenFabrics Alliance – IBのソフトウェアスタックの開発と配布 OpenFabrics Enterprise Distributes(OFED) – https://www.openfabrics.org/ • 装置ベンダー – Mellanox – QLogic → IB部門はIntelに買収 – Xsigo → Oracleに買収
  5. 5. InfiniBandはどこで使われている か? • 用途 – HPC • SC13で公開されたTOP500中207システムで利用 – 金融 • ニューヨーク証券取引所(NYSE)のバックボーン – ストレージ、DB • EMC Isilon IQ、Oracle Exadata – データセンター • さくらインターネット – 自宅サーバ • でも普通のエンジニアには関係なくね?
  6. 6. InfiniBandのプロトコルスタック 名称 用途 Verbs IBの機能を直接使用可能なlow-level API rmdacm Verbsのうちコネクション確立の部分をラップしたAPI。 CMはCommunication Managementの略。 IPoIB IBをIPとして使用(“ib0”、”ib1”、…) MPI Message Passing Interface uDAPL User Direct Access Programming Library(uDAPL) http://www.datcollaborative.org/ iSER iSCSI Extensions for RDMA SRP SCSI RDMA Protocol RDS Reliable Datagram Sockets。UDPソケットとほぼ同じシンタックスのラ イブラリ。現在は標準OFEDから外された。 VMA LD_PRELOADで既存プログラムのソケットインターフェイスを乗っ取 り通信をIB経由に変更する。 https://code.google.com/p/libvma/
  7. 7. Ethernet&IPとの対比 Ethernet IB カード ネットワークカード (NIC) Host Channel Adaptor(HCA) 固有ID MACアドレス(48ビッ ト) GUID(64ビット) ネットワークアド レス IPアドレス Local Identifier(LID) (16ビッ ト) (¾の49,152個まで利用可能) 通信インスタンス ソケット Queue Pair(QP) インスタンスの区 ポート番号(16ビット) QP番号(24ビット) • EthernetがMACアドレスを使ってL2スイッチを行う。他のノー 別 ドの存在はブロードキャストで調べる。 • IBはSubnet Manager(SM)がネットワーク初期化時にHCAの各 ポートにLIDを割り付ける。L2スイッチはLIDを使って行う。 SMはMADと呼ばれる特殊なプロトコルを使ってネットワーク トポロジーの解析、LIDの割り当て、ルーティングテーブルの 配布を行う。
  8. 8. InfiniBandプログラミングに必要な もの • 標準的なLinuxディストリ • パッケージ – rdma – libibverbs – libibverbs-devel • ヘッダーファイル – #include <infiniband/verbs.h> • ライブラリリンク – -libverbs
  9. 9. Verbsの通信モデル • Services – RC(XRC)、RD、UC、UDの4(+1)種類 • Reliable(再送制御あり)、Unreliable(なし) • Connection(送信順序あり)、Datagram(なし) – RCはTCP、UDはUDに相当 • ただしconnectionでもメッセージ境界がある – RDとUCは使われない • Operations – – – – SEND-RECV RDMA WRITE RDMA READ Atomic operations
  10. 10. Verbsの通信モデル(cont.) • Queue Pair(QP) – 内部にSend Queue(SQ)とReceive Queue(RQ) – ibv_create_qpで作成 QP QP ibv_post_send SQ(Send Queue) SQ ibv_post_recv RQ(Send Queue) RQ
  11. 11. SEND-RECV • Receiverあらかじめ登録した受信バッファへ 転送 ibv_post_send QP SQ RQ QP SQ RQ ibv_post_recv • 制限 – Senderが送信する前にReceiverが受信バッファを 登録しないとエラー。 – Senderが送信したメッセージよりも受信バッファ が短いとエラー
  12. 12. SEND-RECV(cont.) • メモリをどう扱うか? – ユーザプログラムがmallocやmmapしたメモリ をibv_reg_mrで登録 – ibv_reg_mrで登録したメモリはカーネルがpin して仮想メモリ→物理メモリのマップを固定 化 • 制限 – プロセスを跨いだInfiniBandリソースの共有は できない。
  13. 13. SEND-RECV(cont.) • どのようにして完了を検知するか? – Completion Queue(CQ) • ibv_poll_cqでWork Completion(WC)が取り出せる – Completion Channel • CQにWCが到着したことをselect/pollなどで検知で きる – メモリ管理 • RDMA WRITEでリモートのフラグを書き換えればい い! QP SQ CQ RQ CQ
  14. 14. RDMA WRITE • リモートのメモリアドレスを指定して WRITE – リモート側は自分のメモリがWRITEされたこ とを検知できない ibv_post_send QP SQ RQ QP SQ RQ Remote Memory
  15. 15. RDMA WRITE with Immediate • RDMA WRITEと同じだが書込み完了をRQを 使って通知する – 4バイトの即値も一緒に送れる ibv_post_send QP SQ RQ QP SQ RQ Remote Memory
  16. 16. RDMA READ • リモートのメモリアドレスを指定して READ – リモート側は自分のメモリがREADされたこと を検知できない ibv_post_send QP SQ RQ QP Remote Memory SQ RQ
  17. 17. Atomic操作 • リモートのメモリ空間に対して、8バイト 境界に沿う8バイトに対してアトミック操 作が可能。 – Compare-and-Swap – Fetch-and-Add • リモートは操作を受けたことを検知でき ない。 • Fetch-and-Addはリモート側のネイティブ インディアンに従う • 古いメモリの値はローカル側に送り返さ
  18. 18. How much? • 機器のお値段 – – – – 1ポートHCA(97,900 円) 2ポートHCA(153,200円) QSFPケーブル(14,050円) 8ポートスイッチ(288,400円) • InfiniBandプログラムをはじめる最小構成 – 2ポートHCAを1枚+ケーブル1本=167,250円 – 1ポートHCAを2枚+ケーブル1本=209,850円 • 高いわ!!
  19. 19. Pseudo InfiniBand (pib) • 実機ハードが不要の疑似IBドライバ • UDPを使ってIBをエミュレーション • 現状では1ノード内だけで動作 • リンク – http://www.nminoru.jp/~nminoru/network/infini band/pib.html – https://github.com/nminoru/pib
  20. 20. 参考ページ • InfiniBand Trade Association – http://www.infinibandta.org/ – レジストするとIBの仕様書(InfiniBand Architecture Specification Volume 1 Release 1.2.1)がダウンロード可能。 • OpenFabrics Alliance – https://www.openfabrics.org/ – 最新のOFEDがダウンロードできる。 • RDMA Aware Networks Programming User Manual – http://www.mellanox.com/relateddocs/prod_software/RDMA_Aware_Programming_user_manual.pdf – Mellanox社が出しているVerbsとRDMA CM APIのプログラムマ ニュアル • RDMAmojo – http://www.rdmamojo.com/ – Dotan Barak氏の個人ブログ。世界で一番詳しいRMDAプログラム テクニックの初回ページ。manを見るよりはこちらを見た方が よい。
  • ssuser971221

    May. 30, 2019
  • rymzt

    May. 15, 2018
  • takahirohashimoto96995

    May. 5, 2018
  • picosleep

    Dec. 31, 2016
  • yoheiazekatsu

    Dec. 10, 2014
  • yuichitakada88

    May. 12, 2014
  • inuhiroshi

    Dec. 25, 2013
  • TakeshiWatanabe2

    Dec. 15, 2013
  • orangeclover

    Dec. 9, 2013

InfiniBand Verbs/RDMAプログラムのさわりと、実機が不要なsoftware-based InfiniBand driverの紹介。

Views

Total views

6,828

On Slideshare

0

From embeds

0

Number of embeds

100

Actions

Downloads

43

Shares

0

Comments

0

Likes

9

×