MPIサブルーチン概要

ここで説明されているサブルーチンは例題で使用したものだけで、全てを網羅 しているわけではありせん。

mpi_address(location,address,ierr)
locationのバイトアドレスを取得します。
mpi_bcast(buf,count,datatype,root,comm,ierr)
rootプロセッサがbufをコミュニケータで定義された全てのプロセッサに送信し、コミュニケータ内の他の全てのプロセッサはデータをbufに受け取ります。
mpi_comm_rank(comm,rank,ierr)
プロセッサランクを取得します。
mpi_comm_size(comm,size,ierr)
コミュニケータ内のプロセッサの数を取得します。
mpi_finalize(ierr)
MPIを終了します。全てのMPIサブルーチンはこのサブルーチンの前でコールしなければなりません。
mpi_gather(sendbuf,sendcounts,sendtype,recvbuf,recvcounts,recvtype,root,comm,ierr)
各プロセッサから送信されたデータをrootプロセッサに集めます。Ip番プロセッサから送信されたデータは、(Ip-1))番プロセッサからのデータが保存された位置の隣に保存されます。Sendcounts/sendtypeとrecvcounts/recvtypeは全プロセッサで同じでなければなりません。
mpi_init(ierr)
MPIを初期化します。全てのMPIサブルーチンはこのサブルーチンの後でコールしなければなりません。
mpi_irecv(buf,count,datatype,source,tag,comm,request,ierr)
非ブロッキング版mpi_recv。受信したデータの情報[status(mpi_status_size)]は対応するmpi_waitが、受信完了を確認した時点で、受け取ります。
mpi_isend(buf,count,datatype,dest,tag,comm,request,ierr)
非ブロッキング版mpi_send
mpi_recv(buf,count,datatype,source,tag,comm,status,ierr)
sourceプロセッサから送られたデータをbufに受信します。対応するmpi_sendmpi_recvと同じtagを持たなければなりません。status(mpi_status_size)には、送信元のプロセッサランク、メッセージタグ、エラーコードなど、受信したデータの情報が記録されます。
mpi_reduce(operand,result,count,datatype,operator,root,comm,ierr)
各プロセッサが保持するoperandにoperatorを作用させます。operatorにはMPIライブラリで定義されているリダクション演算(mpi_sum, mpi_max, mpi_min など)、またはユーザが定義した演算を与えます。
mpi_send(buf,count,datatype,dest,tag,comm,ierr)
destプロセッサへbufを送信します。対応するmpi_recvmpi_sendと同じtagを持たなければなりませ ん。
mpi_sendrecv(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf,recvcount,recvtype,souce,recvtag,comm,status,ierr)
mpi_sendmpi_recvの組合せです。
mpi_type_commit(newtype,ierr)
newtypeをMPIに通知します。通知後に新しい派生型newtypeが使用可能になります。
mpi_type_struct((count,sizes,displacements,types,newtype,ierr)
count, sizes, displacements, typesで定義されたデータグループを与える派生型を構築します。
mpi_wait(request,status,ierr)
同じリクエストタグを持つ対応する非ブロッキングサブルーチンが終了するのを待ちます。

Written by "Ryusuke NUMATA" <rnumata at umd.edu>
http://www.glue.umd.edu/~rnumata/
Last modified: $Date: 2008-01-23 16:15:00 -0500 (Wed, 23 Jan 2008)$

Valid XHTML 1.0 Strict