MPIRUN(1)
USER COMMANDS
MPIRUN(1)
名称
mpirun - MPI プログラムを実行します

書式
mpirun [options] [-score scoreoptions] [-np nodes ] mpi_program args...

解説
mpirun コマンドは MPI プログラムを SCore 環境上で実行します。これは MPICH と mpirun を使用する他のスクリプトとのポータビリティのために提供されています。

オプション
-np nodes
プロセスの数を nodes になるよう指定します。SMP クラスタでは割り当てられるホストの数は hosts を SMP 中のプロセッサ数で割った数になります。これは -nodes=nodes オプションと同一です。

-np hostsxprocs
SMP クラスタ上でプロセスの数と配分を指定します。"hosts 個のホストを用い、各ホストで procs 個のプロセスを起動することで全部で hosts x procs 個のプロセスを起動する" ことになります。これは -nodes=hostsxprocs オプションと同一です。

SCORE オプション
これらの引数は MPICH-SCore 固有のものです。これらは環境変数 SCORE_OPTIONS に設定することも可能です。

-nodes=nodes
nodes 個のプロセスを起動します。

-score nodes=hostsxprocs
SMP クラスタ上でプロセスの数と配分を指定します。"hosts 個のホストを用い、各ホストで procs 個のプロセスを起動することで全部で hosts x procs 個のプロセスを起動する" ことになります。

SCORE オプション (ch_score)
これらの引数は MPICH-SCore version 1.0 (ch_score) 固有のものです。これらは環境変数 SCORE_OPTIONS に設定することも可能です。

-score mpi_zerocopy=on
大きいメッセージ(下の mpi_eager オプションを参照してください)の転送にゼロコピープロトコルまたはワンコピープロコトル(リモートメモリオペレーション)を使用します。これはユーザバッファ間で直接転送を行う PM のリモートメモリアクセスの機能を利用した rendezvous プロトコルです。PM のこの機能をサポートするハードウェアの上でのみ利用可能です。このオプションはバンド幅を劇的に増加させます。

-score mpi_zerocopy=off
ゼロコピープロトコルまたはワンコピープロトコル(リモートメモリオペレーション)を使用しません。これはデフォルトです。

-score mpi_globtime=on
時刻を同期させます。 MPI_WTIME および MPI_WTICK 関数は同期時刻を返し、 MPI 属性キーの MPI_WTIME_IS_GLOBAL は「真」に設定され ます。 PM のこの機能をサポートするハードウェアの上でのみ利用可能です。

-score mpi_globtime=off
時刻を同期させません。これがデフォルトです。

-score mpi_eager=num
MPICH-SCore で用いられるプロトコルがロングメッセージプロトコルに切り替えるメッセージのサイズを num バイトに設定します。デフォルトは 16K バイトです。この値より大きいメッセージは rendezvous プロトコルを用いて送信されます。

SCORE オプション (ch_score2)
これらの引数は MPICH-SCore version 2.0 (ch_score2) 固有のものです。これらは環境変数 SCORE_OPTIONS に設定することも可能です。

-score mpi_rma=on
大きいメッセージ(下の mpi_max_eager_myrinet, mpi_max_eager_shmem オプションを参照してください)の転送に ゼロコピープロトコルまたはワンコピープロコトル (リモートメモリオペレーション)を使用します。 これはユーザバッファ間で直接転送を行う PM のリモートメモリアクセスの機能を利用した get プロトコルです。 このオプションはバンド幅を劇的に増加させます。 このオプションはデフォルトです。

-score mpi_rma=off
ゼロコピープロトコルまたはワンコピープロトコル(リモートメモリオペレーション)を使用しません。

-score mpi_max_eager_myrinet=num
MPICH-SCore version 2.0 では 長いメッセージを送るときに get プロトコルを 使用しますが、get プロトコルへ切替えるメッセージの長さを numバイトに設定します。 この値はMyrinetを介した通信にのみ有効です。 デフォルトは 300K バイトです。

-score mpi_max_eager_shmem=num
MPICH-SCore version 2.0 では 長いメッセージを送るときに get プロトコルを 使用しますが、get プロトコルへ切替えるメッセージの長さを numバイトに設定します。 この値は SMP ノード内におけるMPIプロセス間の通信にのみ有効です。 デフォルトは 1.2K バイトです。

-score mpi_synccoll
MPI_AlltoallおよびMPI_alltoallv関数の実装を切替えます。 このオプションを指定すると ch_score2 に含まれるコードが使用されます。 このコードは、全対全通信における各通信ステップで、すべての MPIプロセスの同期をとるものです。ネットワーク構成や、メッセージの サイズにもよるのですが、このオプションを指定するほうが よい性能が得られる場合があります。

プログラム ft.A.32 を 32 個のプロセッサ上で実行します。

mpirun -np 32 ft.A.32

同じプログラムを mpi_zerocopy=on オプションをつけて実行します:

mpirun -np 32 -score mpi_zerocopy=on ft.A.32

以後の全ての MPI プログラムの実行に mpi_zerocopy=on オプションを使うことにし、環境変数 SCORE_OPTIONS にこれを加えて環境を設定します。この方法は mpirun を内部で用いるようなスクリプト(たとえばベンチマークスクリプト)があり、スクリプトに手を加えることなく SCore のオプションを追加して処理を行いたい場合に大変便利です。

export SCORE_OPTIONS=$SCORE_OPTIONS,mpi_zerocopy=on
mpirun -np 32 ft.A.32

SMP クラスタを使用していて、各ホストにつき 2 プロセスずつ動作させたいとします。既に環境に mpi_zerocopy=on を設定してあるので、各ホストで 2 プロセスずつ(全 16 ホスト)、mpi_zerocopy が許可された状態で実行されます。

mpirun -np 16x2 ft.A.32

デフォルトオプション
デフォルトのオプションは -score mpi_zerocopy=off,mpi_eager=16384 です

関連項目
environ(7), scrun(1) mpicc(1), mpif77(1), mpic++(1), mpc++(1)

CREDIT
This document is a part of the SCore cluster system software developed at PC Cluster Consortium, Japan. Copyright (C) 2003 PC Cluster Consortium.