Use of shared memory multiprocessor (SMP) system

The shared memory multiprocessor (SMP) system is a parallel computer which has multiple processors. High-end systems and, recently, some PCs haves multiprocessors. On a remote host, a program will show good performance when the program uses these CPUs at the same time.

Setting for SMP
Setting of maxjob
Execution of client program

Setting for SMP

In this example, we assume the environment below.
  1. Client host is jones.
  2. Remote host(apple) is an SMP system and has 4 processors.
  3. The same network and process is invoked by rsh.

setting of maxjob

Multiple remote execution programs can be executed at the same time on each processor in an SMP system. In this case, we can execute a maximum of 4 programs. We describe hostfile for the SMP system as follow.

<?xml version="1.0" ?>
<OmniRpcConfig>
   <Host name="apple" arch="i386" os="linux">
   <JobScheduler maxjob="4" /> 
   </Host>
</OmniRpcConfig>

In this description, we set the maxjob attribute as "4" for the JobScheduler element. This shows that the maximum number of remote executable programs executed on the remote host at the same time is 4. Certainly, in a 4-way SMP system, we can run more than 4 jobs, but in practice 4 processes are executed in parallel. Therefore effectiveness may not change.

In this case, the agent invoke multiple rex-es. The relationship is as follows.

Execution of client program

The client program is executed in the same manner as the others, except for using the above host file.
% a.out --hostfile hosts.xml  args ... 
Of course, to achieve good performance, we use a client program which uses the OmniRPC call in parallel.