From 40f7ee1cab2affd855758f374d6b89c7df5c4bb4 Mon Sep 17 00:00:00 2001 From: nachocano Date: Tue, 2 Dec 2014 01:49:54 -0800 Subject: [PATCH] adding simple image --- report/.gitignore | 2 +- report/fig/allreduce.pdf | Bin 0 -> 44692 bytes report/rabit.tex | 13 ++++++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 report/fig/allreduce.pdf diff --git a/report/.gitignore b/report/.gitignore index aac9702f9..8c9da0f78 100644 --- a/report/.gitignore +++ b/report/.gitignore @@ -1,4 +1,4 @@ -*.pdf +rabit.pdf *.bbl *.blg *.fls diff --git a/report/fig/allreduce.pdf b/report/fig/allreduce.pdf new file mode 100644 index 0000000000000000000000000000000000000000..17d846d2a6cb47ec4b1d6eb569d92ce0dc1d7817 GIT binary patch literal 44692 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%0A)~k9CzBr|y5s5ke;g_$`$+H?%c^f?M7v`>1- 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 RB0`wJAk+c^8gNbO{{Y*J){X!G literal 0 HcmV?d00001 diff --git a/report/rabit.tex b/report/rabit.tex index ba1eb647d..a075a37cf 100644 --- a/report/rabit.tex +++ b/report/rabit.tex @@ -4,6 +4,7 @@ \usepackage{fullpage} \usepackage{color} \usepackage{natbib} +\usepackage{graphicx} \newcommand{\todo}[1]{\noindent{\textcolor{red}{\{{\bf TODO:} #1\}}}} @@ -34,7 +35,17 @@ Distributed machine learning is an active research area that has seen an incredi \section{AllReduce} -In AllReduce settings, nodes are organized in a tree structure. Each node holds a portion of the data and computes some values on it. Those values are passed up the tree and aggregated, until a global aggregate value is calculated in the root node (reduce). The global value is then passed down to all other nodes (broadcast). Figure \todo{add image} shows an example of an AllReduce operation. +In AllReduce settings, nodes are organized in a tree structure. Each node holds a portion of the data and computes some values on it. Those values are passed up the tree and aggregated, until a global aggregate value is calculated in the root node (reduce). The global value is then passed down to all other nodes (broadcast). + +Figure \ref{allreduce} shows an example of an AllReduce sum operation. The leaf nodes passed data to their parents (interior nodes). Such interior nodes compute an intermediate aggregate and pass the value to the root, which in turn computes the final aggregate and then passes back the result to every node in the cluster. + +\begin{figure}[tb] +\centering +\includegraphics[width=0.7\columnwidth]{fig/allreduce.pdf} +\caption{AllReduce example} +\label{allreduce} +\end{figure} + \section{Design}