タグ

2010年1月10日のブックマーク (2件)

  • 3. 集団通信

    call MPI_Bcast(buffer, count, datatype, root, comm, ierror) 引数 データ型 入力or出力 内容 ------------------------------------------------------------ buffer 任意 入力/出力 送受信するデータ(の先頭アドレス) count 整数 入力 データの個数 datatype MPIデータ型 入力 データ型 root 整数 入力 送信元プロセスのランク comm MPIコミュニケータ 入力 コミュニケータ ierror 整数 出力 エラーコード rootプロセスが指定したbufferの位置からcount個のデータを、comm内の他の全てのプロセスのbufferに送信する。したがって、bufferはrootプロセスにとっては入力、その他のプロセスにとっては出力となる。送

  • 集団通信

    集団通信 集団通信のアルゴリズム 1. 行列・ベクトル積 集団通信は、ライブラリを用いるのが常に最適とは限らない。集団通信のアルゴリズムは同期的で、 通信の隠蔽ができないからである。密行列とベクトルの積を例に取る。 行列は、行を分割する1次元分割とする。ベクトルも同じ様に分割されているとする。 (a) 集団通信を用いる場合 集団通信を用いる場合、次のように行列・ベクトル積を計算することができる。 AllGather で、ベクトル全体を全プロセッサにコピーする それぞれのプロセッサで行列・ベクトル積を計算する このとき、通信部分が並列化オーバーヘッドとなる。長さ L の一対一通信の所要時間を a + bL とし、 双方向同時通信ができるとすると、所要時間は a log P + b N (P-1)/P となる。 (b) パイプライン化 各プロセッサは、自前のデータで行列・ベクトル積の 1/P