OmniRPC User's Guide Version 1.2

http://www.omni.hpcc.jp/omnirpc/

Yoshihiro Nakajima

High Performance Computing Laboratory, University of Tsukuba

Mitsuhisa Sato

High Performance Computing Laboratory, University of Tsukuba

This handbook itself is part of OmniRPC System and is therefore also licensed under the GNU General Public License; see Copyright for more information.


Table of Contents
1. Overview of OmniRPC System
2. Installation
Requirements
Compilation and Installation
Compilation and Installation form Source File
Compilation and Installation with the Globus Toolkit library
Install Test
stub test (worker program test)
exec-test
call-test
3. Getting Started: Programming with OmniRPC
Simple example
Execution environment
OmniRPC agent and remote executable programs
Write remote executable program
Registration of remote executable program
Client program
Create hostfile.xml
Execution of Cleint Program
Summary
4. Parallel Programming with OmniRPC
Execution Environment
Parallel programming with asynchronous call
Hostfile and Execution
Parallel programming with OpenMP
5. Use of shared memory multiprocessor (SMP) system
Setting for SMP
Setting of Maxjob
Execution of client progra
6. Execution in Globus Toolkit Environments
Execution Environment with Globus Toolkit
Preparation of Globus
Hostfile for Globus
Execution of client program
7. Execution of ssh Environment
Preparing for SSH
Hostfile for SSH
Setting for firewall: Using SSH's port forwarding and MXIO option.
Execution of client program
Setting of Login name
8. Execution on Clusters
Setting of cluster environment
Selection of job scheduler
Use of built-in round-robin scheduler
Cluster in private network
Cluster outside firewall
Cluster inside firewall
9. Programming with OmniRpcHandle API
What's OmniRpcHandle
Programming with OmniRpcHandle
Acquisition of host information.
10. Automatic module initialization with OmniRpcModuleInit API
What's auto module initialization
Programming with OmniRpcModuleInit API
11. Direct Execution of Remote Program
The case of direct activation of remote executable program
Setting environment for remote nodes.
API for direct execution of remote program
Program execution
The limitation of direct activation of remote executable programs.
12. File Transfer in OmniRPC
File Transfer using Filename
Write Remote Executable Program
Write Client Program
Execution of Program
13. Programming in FORTRAN
A simple example in FORTRAN
Create remote executable program
Client program in Fortran
An asynchronous call in FORTRAN
A. Description of hostfile
Specifying the hostfile
How to describe
Details of Hostfile
Host element
TimeOut element: (Optional)
Debug element: (Optional)
DTD (Document Type Definition) of hostfile.
B. IDL (Interface Description Language)
IDL file and generation of remote executable programs
Example
Details of IDL
Module statement
Define statement
Globals statement
Fortranformat statement
Differences from Ninf IDL
IDL grammar
C. Command Reference
Command Reference
omrpc-register -- Operations about OmniRPC's registry.
omrpc-cc -- Compile driver for OmniRPC program.
omrpc-fc -- FORTRAN Compile driver for OmniRPC program.
omrpc-register -- A program to generate OmniRPC's stub.
D. OmniRPC API index
OmniRPC C API
OmniRpcInit --  Initialization of OmniRPC system
OmniRpcFinalize -- Finalize OmniRPC system
OmniRpcCall -- Synchronous call of remote function
OmniRpcCallAsync -- Asynchronous call of remote function
OmniRpcWait -- Wait for asynchronous call
OmniRpcProbe -- Probing asynchronous function call
OmniRpcWaitAll -- Wait of multiple asynchronous calls
OmniRpcWaitAny -- Wait of multiple asynchronous function calls
OmniRpcCreateHandle -- Invocation of remote executable program
OmniRpcCallByHandle -- Synchronous function call with OmniRpcHandle
OmniRpcCallAsyncByHandle -- Asynchronous call of function with OmniRpcHandle
OmniRpcDestroyHandle -- Termination of remote executable program by OmniRpcHandle
OmniRpcModuleInit -- Setting of module initialization
OmniRpcExecInit -- Initialization for direct invocation of remote executable program
OmniRpcExecFinalize -- Termination of OmniRPC system for direct invocation of remote executable program
OmniRpcExecOnHost -- Direct invocation of remote executable program
OmniRpcExecCall -- Synchronous call by OmniRpcExecHandle
OmniRpcExecTerminate -- Termination of remote executable program by OmniRpcExecHandle
OmniRPC FORTRAN API
OMNIRPC_INIT --  Initialization of OmniRPC system
OMNIRPC_FINALIZE -- Finalizing OmniRPC system
OMNIRPC_CALL -- Synchronous call of remote function
OMNIRPC_CALL_ASYNC -- Asynchronous call of remote function
OMNIRPC_WAIT -- Wait for asynchronous call
OMNIRPC_PROBE -- Probing asynchronous function call
OMNIRPC_WAIT_ALL -- Wait of multiple asynchronous calls
OMNIRPC_WAIT_ANY -- Wait of multiple asynchronous function calls
OMNIRPC_CREATE_HANDLE -- Execution of remote executable program
OMNIRPC_CALL_BY_HANDLE -- Synchronous function call with OmniRpcHandle
OMNIRPC_CALL_ASYNC_BY_HANDLE -- Asynchronous call of function with OmniRpcHandle
OMNIRPC_DESTROY_HANDLE -- Termination of remote executable program by OmniRpcHandle
OMNIRPC_MODULE_INIT -- Setting for module initialization
E. FAQ