Return to rims-2003-12-16-ja-ohp.tex CVS log | Up to [local] / OpenXM / doc / Papers |
version 1.5, 2003/12/12 01:30:45 | version 1.7, 2003/12/12 06:05:21 | ||
---|---|---|---|
|
|
||
% $OpenXM: OpenXM/doc/Papers/rims-2003-12-16-ja-ohp.tex,v 1.4 2003/12/12 01:09:50 takayama Exp $ | % $OpenXM: OpenXM/doc/Papers/rims-2003-12-16-ja-ohp.tex,v 1.6 2003/12/12 01:54:05 noro Exp $ | ||
%% xdvi -paper a4r rims-2003-12-16-ja-ohp | %% xdvi -paper a4r rims-2003-12-16-ja-ohp | ||
%% dvips -f -t landscape rims-2003-12-16-ja-ohp| psnup -8 -r | lpr -Pxerox6 | %% dvips -f -t landscape rims-2003-12-16-ja-ohp| psnup -8 -r | lpr -Pxerox6 | ||
%% dvipdfm -l rims-2003-12-16-ja-ohp | %% dvipdfm -l rims-2003-12-16-ja-ohp | ||
|
|
||
\pagetitle{4. {\color{blue} OX-RFC 102 --- $BK\3JE*$J%5!<%P4VDL?.$rMQ$$$?J,;67W;;(B}} | \pagetitle{4. {\color{blue} OX-RFC 102 --- $BK\3JE*$J%5!<%P4VDL?.$rMQ$$$?J,;67W;;(B}} | ||
\parskip 5pt | \parskip 5pt | ||
\rightline{$B3+H/(B: $BLnO$(B} | |||
OX-RFC-100, 101 : master-server $B4VDL?.$rMQ$$$?J,;67W;;(B | OX-RFC-100, 101 : master-server $B4VDL?.$rMQ$$$?J,;67W;;(B | ||
OX-RFC-102 : server-server $B4VDL?.(B | OX-RFC-102 : server-server $B4VDL?.(B | ||
|
|
||
\noindent | \noindent | ||
\pagetitle{broadcast $B$N<jB3$-(B} | \pagetitle{broadcast $B$N<jB3$-(B} | ||
{SM\_bcast\_102} $B$N<B9T(B : $root=0$ $B$G(B, $B<1JL;R$,(B $b2^k$ ($b$ $B$O4q?t(B) $B$N(B server $B$N>l9g(B | {SM\_bcast\_102} $B$N<B9T(B | ||
\begin{enumerate} | $root=0$ $B$G(B, $B<1JL;R$,(B $b2^k$ ($b$ $B$O4q?t(B) $B$N(B server $B$NF0:n(B | ||
\item $B<1JL;R$,(B $(b-1)2^k$ $B$G$"$k(B server $B$+$i%G!<%?$r<u?.(B. | |||
\item $B<1JL;R$,(B $b2^k+2^i$ ($i=k-1,\ldots,0$) $B$N(B server $B$K=g$K%G!<%?$rAw?.(B. | |||
\end{enumerate} | |||
\vskip\baselineskip | |||
\begin{tabbing} | |||
$data \leftarrow$ $B<1JL;R$,(B $(b-1)2^k$ $B$N(B server $B$+$i$N%G!<%?(B\\ | |||
for \= $i=k-1$ down to $0$\\ | |||
\> $B<1JL;R$,(B $b2^k+2^i$ $B$N(B server $B$K(B $data$ $B$rAw?.(B\\ | |||
end for | |||
\end{tabbing} | |||
\vskip\baselineskip | |||
2 $B$G3d$j@Z$l$k2s?t$,B?$$<1JL;R$r;}$D(B server $B$,@h$K%G!<%?Aw?.(B | 2 $B$G3d$j@Z$l$k2s?t$,B?$$<1JL;R$r;}$D(B server $B$,@h$K%G!<%?Aw?.(B | ||
$\Rightarrow$ $B%G%C%I%m%C%/$K$J$i$J$$(B | $\Rightarrow$ $B%G%C%I%m%C%/$K$J$i$J$$(B | ||
$BFHN)$J%Z%"$I$&$7$NDL?.$,F1;~$K9T$($k$J$i!"9b!9(B $\lceil \log_2 N\rceil$ $B%9%F%C%W(B | $BFHN)$J%Z%"$I$&$7$NDL?.$,F1;~$K9T$($k$J$i!"9b!9(B $\lceil \log_2 N\rceil$ $B%9%F%C%W(B | ||
($N$ $B$O(B server $B$NAm?t(B) $B$G(B broadcast $B40N;(B. | ($N$ $B$O(B server $B$NAm?t(B) $B$G(B broadcast $B40N;(B. | ||
\newpage | \newpage | ||
\noindent | \noindent | ||
\pagetitle{reduction $B$N<jB3$-(B} | |||
{SM\_reduce\_102} $B$N<B9T(B | |||
server $B?t(B $N$, $root=0$ $B$G(B, $B<1JL;R$,(B $b$ $B$N(B server $B$NF0:n(B | |||
$B<j;}$A$N%G!<%?$r(B $data$ $B$H$9$k(B | |||
\vskip\baselineskip | |||
\begin{tabbing} | |||
for \= $i=0$ to $\lfloor \log_2 N \rfloor$\\ | |||
\> if \= ( $b$ $B$K(B $2^i$ $B$N(B bit $B$,$"$k(B) then\\ | |||
\> \> $B<1JL;R(B $b-2^i$ $B$N(B server $B$K(B $data$ $B$rAw?.$7$F=*N;(B\\ | |||
\> else if ( $b+2^i < N$ ) then \\ | |||
\> \> $data_0 \leftarrow$ $B<1JL;R(B $b+2^i$ $B$N(B server $B$+$i$N%G!<%?(B\\ | |||
\> \> $data \leftarrow data$ $B$H(B $data_0$ $B$NFs9`1i;;7k2L(B \\ | |||
\> end if\\ | |||
end for | |||
\end{tabbing} | |||
\vskip\baselineskip | |||
$B$3$N>l9g$b(B, $BFHN)$J%Z%"$I$&$7$NDL?.$,F1;~$K9T$($k$J$i!"9b!9(B $\lceil \log_2 N\rceil$ $B%9%F%C%W(B | |||
($N$ $B$O(B server $B$NAm?t(B) $B$G(B reduction $B40N;(B. $B7k2L$O(B root $B$K;D$k(B. | |||
\newpage | |||
\noindent | |||
\pagetitle{broadcast $B;~$N%G!<%?$NN.$l(B} | |||
$N=16$, $root=0$ $B$N>l9g(B | |||
\begin{center} | |||
\begin{tabular}{|c|c|c|c|} | |||
step 1 & step 2 & step 3 & step 4 \\ \hline | |||
$0\rightarrow 8$&$0\rightarrow 4$ &$0\rightarrow 2$ &$0\rightarrow 1$ \\ | |||
&$8\rightarrow 12$&$8\rightarrow 10$ &$8\rightarrow 9$ \\ | |||
& &$4\rightarrow 6$ &$4\rightarrow 5$ \\ | |||
& &$12\rightarrow 14$&$12\rightarrow 13$ \\ | |||
& & &$2\rightarrow 3$ \\ | |||
& & &$10\rightarrow 11$ \\ | |||
& & &$6\rightarrow 7$ \\ | |||
& & &$14\rightarrow 15$ | |||
\end{tabular} | |||
\end{center} | |||
reduction $B$N>l9g(B, $B%G!<%?$NN.$l$O5U$K$J$k(B (step 4 $\rightarrow$ step 1, | |||
$BLp0u$,5U(B) | |||
\newpage | |||
\noindent | |||
\pagetitle{$B%(%i!<=hM}(B} | \pagetitle{$B%(%i!<=hM}(B} | ||
master-server $B4VDL?.O)$O(B, OX RFC-100 $B$G5,Dj$5$l$F$$$k(B. | master-server $B4VDL?.O)$O(B, OX RFC-100 $B$G5,Dj$5$l$F$$$k(B. | ||
|
|
||
\newpage | \newpage | ||
\noindent | \noindent | ||
\pagetitle{$B%Q%U%)!<%^%s%9(B} | \pagetitle{$B<B9TNc(B : $B0lJQ?tB?9`<0$N@Q(B (master $BB&(B)} | ||
\begin{verbatim} | |||
def d_mul(F1,F2) | |||
{ | |||
Procs = getopt(proc); | |||
if ( !var(F1) || !var(F2) ) return F1*F2; | |||
NP = length(Procs); | |||
/* $B0z?t$r(B server 0 $B$KAw$k(B */ | |||
ox_push_cmo(0,[F1,F2]); | |||
/* $B3F(B server $B$K(B, server 0 $B$r(B root $B$H$7$F;E;v$r;O$a$k$h$&0MMj(B */ | |||
for ( I = 0; I < NP; I++ ) | |||
ox_cmo_rpc(I,"d_mul_main",0); | |||
/* server 0 $B$+$i7k2L$r<u$1<h$k(B */ | |||
R = ox_pop_cmo(0); | |||
return R; | |||
} | |||
\end{verbatim} | |||
\newpage | |||
\noindent | |||
\pagetitle{$B<B9TNc(B : $B0lJQ?tB?9`<0$N@Q(B (server $BB&(B; collective)} | |||
\begin{verbatim} | |||
def d_mul_main(Root) | |||
{ | |||
/* server $B$NAm?t(B, $B<+J,$N(B id $B$rCN$k(B */ | |||
Id = ox_get_rank_102(); NP = Id[0]; Rank = Id[1]; | |||
/* Root $B$K$"$k0z?t$r(B broadcast $B$G6&M-(B */ | |||
Arg = ox_bcast_102(Root); F1 = Arg[0]; F2 = Arg[1]; | |||
L = setup_modarrays(F1,F2,NP); | |||
Marray = L[0]; MIarray = L[1]; M = L[2]; | |||
R = umul_chrem(F1,F2,MIarray[Rank],Marray[Rank],M); | |||
Arg = 0; F1 = 0; F2 = 0; | |||
/* $B3F(B server $B$N7k2L$rB-$79g$o$;$F(B, Root $B$KCV$/(B */ | |||
R = ox_reduce_102(Root,"+",R); | |||
/* Root $B$N$_(B, $B7k2L$r(B normalize $B$9$k(B */ | |||
if ( Rank == Root ) | |||
R = uadj_coef(R%M,M,ishift(M,1)); | |||
return R; | |||
} | |||
\end{verbatim} | |||
\rightline{$B3+H/(B: $BLnO$(B} | |||
\end{document} | \end{document} | ||