OmniRPC User's Guide Version 1.2: http://www.omni.hpcc.jp/omnirpc/ <omnirpc@omni.hpcc.jp> | ||
|---|---|---|
| Prev | Chapter 4. Parallel Programming with OmniRPC | Next |
We can do parallel programming by calling OmniRpcCall on a multi-thread program with Omni OpenMP, which is one of OpenMP compiler of an implementation using a thread. We show an example as follows.
#include <OmniRpc.h>
#include <stdio.h>
#include <math.h>
int main(int argc,char *argv[]){
int i;
double x, res[10];
OmniRpcRequest req[10];
OmniRpcInit(&argc,&argv);
x = 0.0;
#pragma omp parallel for
for(i = 0; i <; 10; i++){
req[i] = OmniRpcCall("calc_sin",x,&res[i]);
x += 1.0;
}
for(i = 0; i < 10; i++)
printf("sin(%d)=%g\n",i,res[i]);
OmniRpcFinalize();
}When you want to run this program, remember to set the OMP_NUM_THREADS environmental value, which specifies the number of OpenMP threads, to a value more than the number of remote hosts.