The hostfile is an XML file that describes the execution environment. We will show the procedure to describe it.
In the hostfile, you should specify which host a client program uses. You should type the command option "--hostfile" for the client program.
% a.out --hostfile host_fileargs ..
If "--hostfile" is not set, by default the hosts.xml in each user's registry is used. In other words, "$HOME/.omrpc-registry/hosts.xml" is used as the default setting.
We show an example below.
<?xml version="1.0" ?> <OmniRpcConfig> <Host name="jones.is.tsukuba.ac.jp"> <Host name="alice.hpcc.jp" user="msato" arch="i386" os="linux"> <Agent invoker="globus" mxio="on" path="/usr/local/omrpc"/> <JobScheduler type="rr" maxjob="6" /> <Registry path="/home/msato/app/stubs" /> <Description> This is a sample host description. </Description> </Host> </OmniRpcConfig>
We specify 2 hosts(jones.is.tsukuba.ac.jp and alice.hpcc.jp). In jones.is.tsukuba.ac.jp, the defaults setting is used, so the invocation method of the agent is "rsh" and a remote executable program is allocated. Because alice.hpcc.jp is a remote server node, Globus GRAM is used as a agent invocation method. Registry is at "/home/msato/app/stubs", not the default setting. Remote executable programs are executed by the round-robin scheduler, which is the built-in scheduler in the agent. 6 remote executable programs are invoked. Also, the account in alice.hpcc.jp is "msato."
Hostfile is an XML file which has OmniRpcConfig at the top level. OmniRpcConfig's element is Host.
In the host element, you should describe the hosts which you use.
In the host, you can specify the attributes below.
In OmniRPC, the omrpc-agent is invoked in initialization, and the agent element is a option for the agent. It has no elements. but you can specify the following attributes.
Specify the jobscheduler of the omrpc-agent which executes the remote executable. There are some attributes. If this element is omitted, the default type is fork and maxjob is 1.
Specify the path to the registry on the remote host. If this element is omitted, the registry path is the home directory on the remote host.
You can describe information about host.
<!ELEMENT OmniRpcConfiguration (Host+)> <!ATTLIST OmniRpcConfiguration version CDATA> <!ELEMENT Host (Agent?, JobScheduler?, Registry?, Description?> <!ATTLIST Host name CDATA #REQUIRED> <!ATTLIST Host user CDATA > <!ATTLIST Host arch CDATA> <!ATTLIST Host os CDATA> <!ELEMENT Agent EMPTY> <!ATTLIST Agent invoker (rsh|ssh|globus|gram) #REQUIRED> <!ATTLIST Agent mxio (on|off)> <!ATTLIST Agent path CDATA> <!ELEMENT JobScheduler EMPTY> <!ATTLIST JobScheduler type (fork|rr|round_robin|pbs|sge) #REQUIRED> <!ATTLIST JobScheduler maxjob CDATA> <!ELEMENT Registry EMPTY> <!ATTLIST Registry path CDATA #REQUIRED> <!ELEMENT Description (#PCDATA)>