Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Minoru Nakamura
PPTX, PDF
7,452 views
0円でできる自宅InfiniBandプログラム
InfiniBand Verbs/RDMAプログラムのさわりと、実機が不要なsoftware-based InfiniBand driverの紹介。
Technology
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Downloaded 46 times
1
/ 20
2
/ 20
3
/ 20
4
/ 20
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
Most read
More Related Content
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
by
Takeshi HASEGAWA
PDF
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
PDF
目grep入門 +解説
by
murachue
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PDF
eBPFを用いたトレーシングについて
by
さくらインターネット株式会社
PDF
KVM環境におけるネットワーク速度ベンチマーク
by
VirtualTech Japan Inc.
PDF
10分でわかる Cilium と XDP / BPF
by
Shuji Yamada
PDF
CXL_説明_公開用.pdf
by
Yasunori Goto
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
by
Takeshi HASEGAWA
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
目grep入門 +解説
by
murachue
DockerコンテナでGitを使う
by
Kazuhiro Suga
eBPFを用いたトレーシングについて
by
さくらインターネット株式会社
KVM環境におけるネットワーク速度ベンチマーク
by
VirtualTech Japan Inc.
10分でわかる Cilium と XDP / BPF
by
Shuji Yamada
CXL_説明_公開用.pdf
by
Yasunori Goto
What's hot
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
AS45679 on FreeBSD
by
Tomocha Potter
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
PDF
Ethernetの受信処理
by
Takuya ASADA
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PDF
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
PPTX
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
PDF
仮想化環境におけるパケットフォワーディング
by
Takuya ASADA
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PDF
セキュアエレメントとIotデバイスセキュリティ2
by
Kentaro Mitsuyasu
PDF
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
PDF
Scapyで作る・解析するパケット
by
Takaaki Hoyo
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
by
Masahito Zembutsu
PDF
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
by
Kuniyasu Suzaki
PDF
30分でわかる! コンピュータネットワーク
by
Trainocate Japan, Ltd.
暗号技術の実装と数学
by
MITSUNARI Shigeo
AS45679 on FreeBSD
by
Tomocha Potter
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
Ethernetの受信処理
by
Takuya ASADA
Dockerからcontainerdへの移行
by
Akihiro Suda
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
仮想化環境におけるパケットフォワーディング
by
Takuya ASADA
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
セキュアエレメントとIotデバイスセキュリティ2
by
Kentaro Mitsuyasu
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
Scapyで作る・解析するパケット
by
Takaaki Hoyo
できる!並列・並行プログラミング
by
Preferred Networks
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
by
Masahito Zembutsu
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
by
Kuniyasu Suzaki
30分でわかる! コンピュータネットワーク
by
Trainocate Japan, Ltd.
More from Minoru Nakamura
PPTX
Persistent-Memory-Programming-Model
by
Minoru Nakamura
PPTX
Jvm reading-synchronization
by
Minoru Nakamura
PPTX
x86-64/Linuxに独自メモリ空間を勝手増設
by
Minoru Nakamura
PPTX
x86-64/Linuxに独自メモリ空間を勝手増設
by
Minoru Nakamura
PDF
JVM-Reading-ConcurrentMarkSweep
by
Minoru Nakamura
PPT
Jvm reading-parallel gc
by
Minoru Nakamura
PPT
JVM-Reading-ParalleGC
by
Minoru Nakamura
Persistent-Memory-Programming-Model
by
Minoru Nakamura
Jvm reading-synchronization
by
Minoru Nakamura
x86-64/Linuxに独自メモリ空間を勝手増設
by
Minoru Nakamura
x86-64/Linuxに独自メモリ空間を勝手増設
by
Minoru Nakamura
JVM-Reading-ConcurrentMarkSweep
by
Minoru Nakamura
Jvm reading-parallel gc
by
Minoru Nakamura
JVM-Reading-ParalleGC
by
Minoru Nakamura
0円でできる自宅InfiniBandプログラム
1.
0円でできる自宅InfiniBandプ ログラム 第九回 カーネル/VM探検隊 2013/12/8
2.
自己紹介 • • • • • 名前:中村 実 所属:武蔵中原周辺のIT企業 Mail: nminoru@nminoru.jp Twitter:@nminoru_jp Web:http://www.nminoru.jp/~nminoru/ 今日はInfiniBand(RDMA)プログラミングのさ わりと、私が開発中のsoftware-based InfiniBand
driverの紹介をします。
3.
InfiniBandとは? • 高帯域・低遅延のネットワーク装置 – 高帯域 •
56Gbps(FDR)×2、Point-to-Pointの輻輳制御 – 低遅延 • 1スイッチレイテンシが2μ秒以下 – コピーゼロ • 無駄なコピーがない! – RDMA (Remote Direct Memory Access)
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.
InfiniBandはどこで使われている か? • 用途 – HPC •
SC13で公開されたTOP500中207システムで利用 – 金融 • ニューヨーク証券取引所(NYSE)のバックボーン – ストレージ、DB • EMC Isilon IQ、Oracle Exadata – データセンター • さくらインターネット – 自宅サーバ • でも普通のエンジニアには関係なくね?
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.
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.
InfiniBandプログラミングに必要な もの • 標準的なLinuxディストリ • パッケージ –
rdma – libibverbs – libibverbs-devel • ヘッダーファイル – #include <infiniband/verbs.h> • ライブラリリンク – -libverbs
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.
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.
SEND-RECV • Receiverあらかじめ登録した受信バッファへ 転送 ibv_post_send QP SQ RQ QP SQ RQ ibv_post_recv • 制限 –
Senderが送信する前にReceiverが受信バッファを 登録しないとエラー。 – Senderが送信したメッセージよりも受信バッファ が短いとエラー
12.
SEND-RECV(cont.) • メモリをどう扱うか? – ユーザプログラムがmallocやmmapしたメモリ をibv_reg_mrで登録 –
ibv_reg_mrで登録したメモリはカーネルがpin して仮想メモリ→物理メモリのマップを固定 化 • 制限 – プロセスを跨いだInfiniBandリソースの共有は できない。
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.
RDMA WRITE • リモートのメモリアドレスを指定して WRITE –
リモート側は自分のメモリがWRITEされたこ とを検知できない ibv_post_send QP SQ RQ QP SQ RQ Remote Memory
15.
RDMA WRITE with
Immediate • RDMA WRITEと同じだが書込み完了をRQを 使って通知する – 4バイトの即値も一緒に送れる ibv_post_send QP SQ RQ QP SQ RQ Remote Memory
16.
RDMA READ • リモートのメモリアドレスを指定して READ –
リモート側は自分のメモリがREADされたこと を検知できない ibv_post_send QP SQ RQ QP Remote Memory SQ RQ
17.
Atomic操作 • リモートのメモリ空間に対して、8バイト 境界に沿う8バイトに対してアトミック操 作が可能。 – Compare-and-Swap –
Fetch-and-Add • リモートは操作を受けたことを検知でき ない。 • Fetch-and-Addはリモート側のネイティブ インディアンに従う • 古いメモリの値はローカル側に送り返さ
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.
Pseudo InfiniBand (pib) •
実機ハードが不要の疑似IBドライバ • UDPを使ってIBをエミュレーション • 現状では1ノード内だけで動作 • リンク – http://www.nminoru.jp/~nminoru/network/infini band/pib.html – https://github.com/nminoru/pib
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を見るよりはこちらを見た方が よい。
Download