=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/OX-RFC-102.tex,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- OpenXM/doc/OpenXM-specs/OX-RFC-102.tex 2003/12/09 01:27:06 1.2 +++ OpenXM/doc/OpenXM-specs/OX-RFC-102.tex 2003/12/11 06:40:10 1.5 @@ -46,7 +46,7 @@ $G$ $B$K$h$j(B 0 $B$K4JLs$5$l$k$3$H$r<($;$P$h$$!#8D $B$3$l$i$O$4$/8B$i$l$?Nc$G$"$k$,(B, $B=EMW$J$3$H$O(B, $B$h$j9bEY$JJ,;6JBNs7W;;$,uBV$KF~$k(B. $B$$$:$l$+$NF0:n(B @@ -110,12 +110,12 @@ $0$ $B$r%9%?%C%/$KCV$/(B. $peer$ $B$O(B, $BAj$G$"$k(B. $host$ $B>e(B, $B%]!<%HHV9f(B $port$ $B$G(B accept $B$7$F$$$k(B server $B$KBP$7(B, connect $B$9$k(B. @@ -138,7 +138,7 @@ $0$ $B$r%9%?%C%/$KCV$/(B. $peer$ $B$O(B, $BAj>= 1; mask > 0; mask >>= 1 ) + if ( (r+mask) < nserver_102 ) { + dst = myrank_102+mask; + if ( dst >= nserver_102 ) dst -= nserver_102; + ox_send_data_102(dst,data); + } + asir_push_one(data); +} +\end{verbatim} + +$BF1MM$Nl9g$b(B, $B4JC1$N$?$a(B $root$ $B$,(B $0$ $B$G$"$k$H$7$F(B, $B<1JL;R$,(B +$B<1JL;R$,(B $b$ $B$N(B server $B$G$O(B, $b$ $B$r2<0L%S%C%H$+$i=g$K8+$F(B, + +\begin{enumerate} +\item $B$=$N%S%C%H$,(B 1 $B$J$i(B, $B$=$N%S%C%H$r(B 0 $B$K$7$?<1JL;R$r$b$D(B server +($B$=$l$OI,$:B8:_$9$k(B) $B$K%G!<%?$rAw?.$7$F=*N;(B. +\item $B$=$N%S%C%H$,(B 0 $B$G(B, $B$=$N%S%C%H$r(B 1 $B$K$7$?CM$,(B $nserver-1$ $B0J2<(B +$B$J$i(B, $B$=$3$+$i%G!<%?$rl9g$K$b(B, +server $B$NAm?t$r(B $nserver$ $B$H$9$k$H$-(B, $B9b!9(B $\lceil \log_2 nserver\rceil$ +$B%9%F%C%W8e$K$O= nserver_102 ) dst -= nserver_102; + ox_send_data_102(dst,data); + break; + } else { + src = r+mask; + if ( src < nserver_102 ) { + src += root; + if ( src >= nserver_102 ) src -= nserver_102; + ox_recv_102(src,&id,&data0); + (*func)(CO,data,data0,&t); data = t; + } + } + asir_push_one(r?0:data); +} +\end{verbatim} + +$BBP1~$9$k(B SM $B%3%^%s%I$O0J2<$NDL$j$G$"$k(B. + +\begin{enumerate} +\item +\begin{verbatim} +SM_bcast_102 +\end{verbatim} + +Request: +\begin{tabular}{|c|c|c|} \hline +{\tt int32 OX\_COMMAND} & {\tt int32 SM\_bcast\_102} & {\tt int32 $root$} \\ \hline +\end{tabular} + +Output: none. + +Stack after the request: +\begin{tabular}{|c|c|} \hline +{\tt int32 OX\_DATA} & {\tt $CMObject$} \\ \hline +\end{tabular} + +\item +\begin{verbatim} +SM_reduce_102 +\end{verbatim} + +Request: +\begin{tabular}{|c|c|} \hline +{\tt int32 OX\_COMMAND} & {\tt int32 SM\_reduce\_102} \\ \hline +{\tt int32 $root$} & {\tt int32 CMO\_String} {$opname$} \\ \hline +\end{tabular} + +Stack after the request: +\begin{tabular}{|c|c|} \hline +{\tt int32 OX\_DATA} & {\tt $CMObject$} \\ \hline +\end{tabular} + +Output: none. +\end{enumerate} + \section{$B%(%i!<=hM}(B} server $B$O(B RFC-100,101 $B$N(B $B%j%;%C%H%W%m%H%3%k$ruBV$K$"$k(B. $B$h$C$F(B, $BR2p$9$k(B. \subsection{server $B4VDL?.O)3+@_(B} +$B0J2<$N4X?t$O(B, master $BMQ$KMQ0U$5$l$?$b$N$G(B, SM $B%3%^%s%IAw?.MQ$N(B +wrapper $B$G$"$k(B. + \begin{itemize} -\item {\tt ox\_set\_rank\_102($Nserver$,$Rank$)} +\item {\tt ox\_set\_rank\_102($Server$,$Nserver$,$Rank$)} -$BDL?.AjuBV(B -$B$KF~$j(B, $BDL?.$,@.N)$7$?$i(B, $BAwuBV$KF~$k$h$&;X<($9$k(B. +$BDL?.$,@.N)$7$?$i(B, $BAw(B $Host$ $B$N%]!<%HHV9f(B $Port$ $B$N(B TCP $B%]!<%H$KBP$7$F(B connect $B$9$k(B. +$Server$ $B$KBP$7(B, $B%[%9%HL>(B $Host$ $B$N%]!<%HHV9f(B $Port$ $B$N(B TCP $B%]!<%H$KBP$7$F(B +connect $B$9$k$h$&;X<($9$k(B. $BDL?.$,@.N)$7$?$i(B, $BAwl9g(B, $B%9%?%C%/$K%W%C%7%e$5$l$k(B. +$B$r;XDj$9$kI,MW$,$"$k(B. $B<1JL;R$,(B $Root$ $B$KEy$7$$(B server $B$G(B, $B%9%?%C%/(B +$B$+$i%G!<%?$,%]%C%W$5$l(B, $B$=$N%G!<%?$,(B, $B3F8F$S=P$7$NLa$jCM$H$J$k(B. +\item {\tt ox\_reduce\_102($Root$,$Operation$[,$Data$])} +$B%0%k!<%WFb$N3F(B server $B$N%9%?%C%/$+$i%]%C%W$7$?%G!<%?$KBP$7(B +$Operation$ $B$G;XDj$5$l$kFs9`1i;;$r9T$$(B, +$B7k2L$r(B $Root$ $B$G;XDj$5$l$k(B server $B$G$N4X?t8F$S=P$7$NLa$jCM$H$7$F(B +$BJV$9(B. +$Data$ $B$,;XDj$5$l$?>l9g(B, $B%9%?%C%/$K%W%C%7%e$7$F$+$i>e5-$NA`:n$r(B +$B