version 1.4, 2001/06/20 02:50:16 |
version 1.6, 2001/06/20 03:18:21 |
|
|
% $OpenXM: OpenXM/doc/ascm2001p/homogeneous-network.tex,v 1.3 2001/06/20 02:39:25 noro Exp $ |
% $OpenXM: OpenXM/doc/ascm2001p/homogeneous-network.tex,v 1.5 2001/06/20 03:08:05 takayama Exp $ |
|
|
\subsection{Distributed computation with homogeneous servers} |
\subsection{Distributed computation with homogeneous servers} |
\label{section:homog} |
\label{section:homog} |
|
|
One of the aims of OpenXM is a parallel speedup by a distributed computation |
One of the aims of OpenXM is a parallel speedup by a distributed computation |
with homogeneous servers. As the current specification of OpenXM does |
with homogeneous servers. |
not include communication between servers, one cannot expect |
%As the current specification of OpenXM does |
the maximal parallel speedup. However it is possible to execute |
%not include communication between servers, one cannot expect |
several types of distributed computation as follows. |
%the maximal parallel speedup. However it is possible to execute |
|
%several types of distributed computation as follows. |
|
|
\subsubsection{Competitive distributed computation by various strategies} |
\subsubsection{Competitive distributed computation by various strategies} |
|
|
SINGULAR \cite{Singular} implements {\it MP} interface for distributed |
SINGULAR \cite{Singular} implements {\it MP} interface for distributed |
computation and a competitive Gr\"obner basis computation is |
computation and a competitive Gr\"obner basis computation is |
illustrated as an example of distributed computation. |
illustrated as an example of distributed computation. |
Such a distributed computation is also possible on OpenXM as follows: |
Such a distributed computation is also possible on OpenXM. |
|
|
The client creates two servers and it requests |
|
Gr\"obner basis comutations by the Buchberger algorithm the $F_4$ algorithm |
|
to the servers for the same input. |
|
The client watches the streams by {\tt ox\_select()} |
|
and the result which is returned first is taken. Then the remaining |
|
server is reset. |
|
|
|
\begin{verbatim} |
\begin{verbatim} |
extern Proc1,Proc2$ |
extern Proc1,Proc2$ Proc1 = -1$ Proc2 = -1$ |
Proc1 = -1$ Proc2 = -1$ |
|
/* G:set of polys; V:list of variables */ |
/* G:set of polys; V:list of variables */ |
/* Mod: the Ground field GF(Mod); O:type of order */ |
/* Mod: the Ground field GF(Mod); O:type of order */ |
def dgr(G,V,Mod,O) |
def dgr(G,V,Mod,O) |
Line 49 def dgr(G,V,Mod,O) |
|
Line 42 def dgr(G,V,Mod,O) |
|
return [Win,R]; |
return [Win,R]; |
} |
} |
\end{verbatim} |
\end{verbatim} |
|
In the above Asir program, the client creates two servers and it requests |
|
Gr\"obner basis comutations by the Buchberger algorithm the $F_4$ algorithm |
|
to the servers for the same input. |
|
The client watches the streams by {\tt ox\_select()} |
|
and the result which is returned first is taken. Then the remaining |
|
server is reset. |
|
|
\subsubsection{Nesting of client-server communication} |
\subsubsection{Nesting of client-server communication} |
|
|