共有メモリマルチプロセッサシステム(SMP: Shared memory Multiprocessor)とは、複数のプロセッサを持つタイプの並列計算機です。ハ イエンドのシステムや、最近では、PCなどでも2つ以上のプロセッサを持つSMP になっているものもあります。リモートホストに、これらのCPUを同時に利用 することでプログラムを高速化することができます。
SMPにあるそれぞれのプロセッサでは複数のリモート実行プログラムを同時に 実行させることができます。上の設定では、最大4つのプログラムを実行する ことができます。SMPのためのホストファイルは以下のように記述します。
<?xml version="1.0" ?> <OmniRpcConfig> <Host name="apple" arch="i386" os="linux"> <JobScheduler maxjob="4" /> </Host> </OmniRpcConfig>
上の記述では、JobScheduler要素にmaxjob属性を4に指定します。 これは同時に実行されるリモート実行プログラムの数の最大を4とすることを 指定しています。 もちろん、4プロセッサのシステムで4以上のジョブを実行できるようにしても かまいませんが、実際には4つのプロセスしか並列に実行できないため、効率 は変わらないでしょう。
この場合には、agentは複数のrexを起動します。その関係は次のようになりま す。
% a.out --hostfile hosts.xml args ...当然ながら、SMPにより性能向上させるためには、クライアントプログラムは OmniPpcを並列に使うプログラムでなくてはなりません。