くらし情報『GTC 2015 - MPIを使ったマルチGPUのプログラミング「基礎編」』

2015年4月16日 07:30

GTC 2015 - MPIを使ったマルチGPUのプログラミング「基礎編」

そしてmpirunコマンドで実行を開始する。ここで-np 4の指定で4つのランクを起動することを指定している。ここではノードが4個あるので、各ノードに1ランクが割り当てられる。

ヤコビ法は隣接する4点の値から中心の点の次の値を計算するというもので、分散処理の説明に良く使われる。n×kランクで処理を分担すると右下の図のようになる。

1個のGPUで処理する場合は、単純に周囲の4点の平均で次の値を計算して行けば良い。

しかし、1つ前の図のように複数のランクで処理を分割すると、端の部分では一部の隣接点は他のランクが分担しており、自分のところにはデータがないということが起こる。このため、端の部分(Haloと呼ぶ、日本語では袖領域ともいう)のデータは隣接するランクと情報交換する必要がある。


上下の隣接したランクとの情報交換は次の図のようになる。この図の上半分はOpenAcc、下半分はCUDAでの記述である。なお、ここでは送信と受信を同時に行うMPI_Sendrecv関数が使われており、u_new+offset_first_rowからランクt_nbにデータを送り、ランクb_nbからのデータをu_new+offset_bottom_bondaryに受け取る。

関連記事
新着くらしまとめ
もっと見る
記事配信社一覧
facebook
Facebook
Instagram
Instagram
X
X
YouTube
YouTube
上へ戻る
エキサイトのおすすめサービス

Copyright © 1997-2024 Excite Japan Co., LTD. All Rights Reserved.