http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1NeuralNet.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1NeuralNet.html b/api/classsinga_1_1NeuralNet.html
new file mode 100644
index 0000000..b62bd10
--- /dev/null
+++ b/api/classsinga_1_1NeuralNet.html
@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::NeuralNet Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1NeuralNet.html">NeuralNet</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1NeuralNet-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::NeuralNet Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The neural network is constructed from user configured layers through 
google protocol buffer.  
+ <a href="classsinga_1_1NeuralNet.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" 
href="neuralnet_8h_source.html">neuralnet.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae5c47bb34897f5029d4b82e96f50081a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ae5c47bb34897f5029d4b82e96f50081a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#ae5c47bb34897f5029d4b82e96f50081a">NeuralNet</a>
 (NetProto net_proto, int group_size=1)</td></tr>
+<tr class="memdesc:ae5c47bb34897f5029d4b82e96f50081a"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">construct the net structure 
from protocol buffer. <br/></td></tr>
+<tr class="separator:ae5c47bb34897f5029d4b82e96f50081a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a947cdee455cd4c29403459aeb7e48f47"><td class="memItemLeft" 
align="right" valign="top">std::string&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a947cdee455cd4c29403459aeb7e48f47">ToString</a>
 ()</td></tr>
+<tr class="memdesc:a947cdee455cd4c29403459aeb7e48f47"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">construct a json string 
representing the neuralnet graph.  <a 
href="#a947cdee455cd4c29403459aeb7e48f47">More...</a><br/></td></tr>
+<tr class="separator:a947cdee455cd4c29403459aeb7e48f47"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a012046b1543c8c24209e6ccefe4603f9"><td class="memItemLeft" 
align="right" valign="top">string&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a012046b1543c8c24209e6ccefe4603f9">DebugInfo</a>
 ()</td></tr>
+<tr class="memdesc:a012046b1543c8c24209e6ccefe4603f9"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Print Norm1 of data and 
grad of each <a class="el" href="classsinga_1_1Layer.html" title="Base layer 
class. ">Layer</a> and parameter.  <a 
href="#a012046b1543c8c24209e6ccefe4603f9">More...</a><br/></td></tr>
+<tr class="separator:a012046b1543c8c24209e6ccefe4603f9"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac59d09a7129befe7eb4206d22075eb11"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac59d09a7129befe7eb4206d22075eb11"></a>
+std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#ac59d09a7129befe7eb4206d22075eb11">ToAdjacency</a>
 ()</td></tr>
+<tr class="memdesc:ac59d09a7129befe7eb4206d22075eb11"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">to display the adjacency 
layers <br/></td></tr>
+<tr class="separator:ac59d09a7129befe7eb4206d22075eb11"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83bf4d104eb009b22e559282d92dc4d3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a83bf4d104eb009b22e559282d92dc4d3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a83bf4d104eb009b22e559282d92dc4d3">AddLayer</a>
 (const LayerProto &amp;layer_proto)</td></tr>
+<tr class="memdesc:a83bf4d104eb009b22e559282d92dc4d3"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Add layer explicitly used 
in manually programming/constructing neural net. <br/></td></tr>
+<tr class="separator:a83bf4d104eb009b22e559282d92dc4d3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ae548e6daf3f7ae01e2beb9a7f5bc6f03"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#ae548e6daf3f7ae01e2beb9a7f5bc6f03">AddLayer</a>
 (const <a class="el" href="classsinga_1_1Layer.html">Layer</a> 
*layer)</td></tr>
+<tr class="memdesc:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Add layer explicitly used 
in manually programming/constructing neural net. <br/></td></tr>
+<tr class="separator:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac135472b2cec6cebb0be27a558d671b6"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac135472b2cec6cebb0be27a558d671b6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#ac135472b2cec6cebb0be27a558d671b6">ShareParams</a>
 (shared_ptr&lt; <a class="el" 
href="classsinga_1_1NeuralNet.html">NeuralNet</a> &gt; other, int 
flag)</td></tr>
+<tr class="memdesc:ac135472b2cec6cebb0be27a558d671b6"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">share weights from other 
neuralnet <br/></td></tr>
+<tr class="separator:ac135472b2cec6cebb0be27a558d671b6"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefb74385ed5cc8a65f56f314deaa8a1c"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aefb74385ed5cc8a65f56f314deaa8a1c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>ToProto</b> 
(NetProto *net_proto, bool copyData=false)</td></tr>
+<tr class="separator:aefb74385ed5cc8a65f56f314deaa8a1c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b951c63d520e2e749c89b4fe1b47b4"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ad3b951c63d520e2e749c89b4fe1b47b4"></a>
+const std::vector&lt; shared_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt; 
&amp;&#160;</td><td class="memItemRight" valign="bottom"><b>layers</b> 
()</td></tr>
+<tr class="separator:ad3b951c63d520e2e749c89b4fe1b47b4"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8955f91a3f9ed9557d885c594445d49"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ad8955f91a3f9ed9557d885c594445d49"></a>
+const std::vector&lt; <a class="el" 
href="classsinga_1_1ParserLayer.html">ParserLayer</a> * &gt; 
&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#ad8955f91a3f9ed9557d885c594445d49">parserlayers</a>
 ()</td></tr>
+<tr class="memdesc:ad8955f91a3f9ed9557d885c594445d49"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">return <a class="el" 
href="classsinga_1_1ParserLayer.html" title="parse the input records into 
Blobs. ">ParserLayer</a> of the neuralnet. <br/></td></tr>
+<tr class="separator:ad8955f91a3f9ed9557d885c594445d49"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce12f03001db3a02c5e136736cf150a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="afce12f03001db3a02c5e136736cf150a"></a>
+const std::vector&lt; <a class="el" 
href="classsinga_1_1LossLayer.html">LossLayer</a> * &gt; &amp;&#160;</td><td 
class="memItemRight" valign="bottom"><b>losslayers</b> ()</td></tr>
+<tr class="separator:afce12f03001db3a02c5e136736cf150a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3638e916992bd414d9ded932962bddb7"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a3638e916992bd414d9ded932962bddb7"></a>
+const std::vector&lt; <a class="el" 
href="classsinga_1_1DataLayer.html">DataLayer</a> * &gt; &amp;&#160;</td><td 
class="memItemRight" valign="bottom"><b>datalayers</b> ()</td></tr>
+<tr class="separator:a3638e916992bd414d9ded932962bddb7"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5559e533d59d0e8734e363e949bfcaf3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a5559e533d59d0e8734e363e949bfcaf3"></a>
+const std::vector&lt; shared_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; &gt; 
&amp;&#160;</td><td class="memItemRight" valign="bottom"><b>params</b> () const 
</td></tr>
+<tr class="separator:a5559e533d59d0e8734e363e949bfcaf3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3fd6c037c2c4e9e099c4cc4d87ec2e3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ab3fd6c037c2c4e9e099c4cc4d87ec2e3"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> 
&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>name2layer</b> 
(string name)</td></tr>
+<tr class="separator:ab3fd6c037c2c4e9e099c4cc4d87ec2e3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa42ba8a7fdfb9071048f8bd62c7ab4db"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aa42ba8a7fdfb9071048f8bd62c7ab4db"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> 
&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>paramid2param</b> 
(int id)</td></tr>
+<tr class="separator:aa42ba8a7fdfb9071048f8bd62c7ab4db"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a5dd6ab4cd78c3f1562b82fbff4644b6c"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a5dd6ab4cd78c3f1562b82fbff4644b6c">RegisterLayers</a>
 ()</td></tr>
+<tr class="memdesc:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Register Layers. 
<br/></td></tr>
+<tr class="separator:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40c2bb568e630d04b4106f37f61f58e7"><td class="memItemLeft" 
align="right" valign="top">static shared_ptr&lt; <a class="el" 
href="classsinga_1_1NeuralNet.html">NeuralNet</a> &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a40c2bb568e630d04b4106f37f61f58e7">SetupNeuralNet</a>
 (const NetProto &amp;np, Phase phase)</td></tr>
+<tr class="memdesc:a40c2bb568e630d04b4106f37f61f58e7"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup the neural network 
for training, test or validation.  <a 
href="#a40c2bb568e630d04b4106f37f61f58e7">More...</a><br/></td></tr>
+<tr class="separator:a40c2bb568e630d04b4106f37f61f58e7"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a90ee7190372b8c7187d6665d1c067a4f"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a90ee7190372b8c7187d6665d1c067a4f"></a>
+void&#160;</td><td class="memItemRight" 
valign="bottom"><b>ConstructNeuralNet</b> (const NetProto 
&amp;net_proto)</td></tr>
+<tr class="separator:a90ee7190372b8c7187d6665d1c067a4f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2214d7af752549f346029c496202edea"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a2214d7af752549f346029c496202edea"></a>
+void&#160;</td><td class="memItemRight" 
valign="bottom"><b>PartitionNeuralNet</b> ()</td></tr>
+<tr class="separator:a2214d7af752549f346029c496202edea"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4238f961a3a3e1dfaa024910150ca39"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ab4238f961a3a3e1dfaa024910150ca39"></a>
+map&lt; string, shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>GetNameToLayer</b> (const vector&lt; 
shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; 
&amp;layers)</td></tr>
+<tr class="separator:ab4238f961a3a3e1dfaa024910150ca39"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6806741dfd2f6dffdea17fc66b43760"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac6806741dfd2f6dffdea17fc66b43760"></a>
+<a class="el" href="classGraph.html">Graph</a>&#160;</td><td 
class="memItemRight" valign="bottom"><b>CreatePartitonedGraph</b> (const 
vector&lt; shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;layers, const map&lt; 
string, shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> 
&gt;&gt; &amp;name2layer)</td></tr>
+<tr class="separator:ac6806741dfd2f6dffdea17fc66b43760"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a207c0744182a802925c41355ef0f2f"><td class="memItemLeft" 
align="right" valign="top">map&lt; string, vector<br class="typebreak"/>
+&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> 
&gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1NeuralNet.html#a0a207c0744182a802925c41355ef0f2f">PartitionLayers</a>
 (const vector&lt; shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;layers)</td></tr>
+<tr class="memdesc:a0a207c0744182a802925c41355ef0f2f"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Partition each layer 
according its partition type and dimension.  <a 
href="#a0a207c0744182a802925c41355ef0f2f">More...</a><br/></td></tr>
+<tr class="separator:a0a207c0744182a802925c41355ef0f2f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a87389f5e484e4b8d853bdac66f38494a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a87389f5e484e4b8d853bdac66f38494a"></a>
+vector&lt; shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>layers_</b></td></tr>
+<tr class="separator:a87389f5e484e4b8d853bdac66f38494a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a083fb0d7e4d40cd1dc8467880a57e791"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a083fb0d7e4d40cd1dc8467880a57e791"></a>
+vector&lt; <a class="el" href="classsinga_1_1ParserLayer.html">ParserLayer</a> 
* &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>parserlayers_</b></td></tr>
+<tr class="separator:a083fb0d7e4d40cd1dc8467880a57e791"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab57fc41ddc64d62e6fd9bd1eff0b04c2"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ab57fc41ddc64d62e6fd9bd1eff0b04c2"></a>
+vector&lt; <a class="el" href="classsinga_1_1LossLayer.html">LossLayer</a> * 
&gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>losslayers_</b></td></tr>
+<tr class="separator:ab57fc41ddc64d62e6fd9bd1eff0b04c2"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a576d9c03b8c9d854c6c670d49f629d"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a4a576d9c03b8c9d854c6c670d49f629d"></a>
+vector&lt; <a class="el" href="classsinga_1_1DataLayer.html">DataLayer</a> * 
&gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>datalayers_</b></td></tr>
+<tr class="separator:a4a576d9c03b8c9d854c6c670d49f629d"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2207f3586e0559aee5d8c76a7e1281"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a5a2207f3586e0559aee5d8c76a7e1281"></a>
+vector&lt; shared_ptr&lt; <a class="el" 
href="classsinga_1_1Param.html">Param</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>params_</b></td></tr>
+<tr class="separator:a5a2207f3586e0559aee5d8c76a7e1281"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa991c1f8eeee6f87e4d7338bfe1a68ff"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aa991c1f8eeee6f87e4d7338bfe1a68ff"></a>
+map&lt; string, shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>name2layer_</b></td></tr>
+<tr class="separator:aa991c1f8eeee6f87e4d7338bfe1a68ff"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0813743d163d6cb6737c39ff4ad4e7dc"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a0813743d163d6cb6737c39ff4ad4e7dc"></a>
+map&lt; int, shared_ptr&lt; <a class="el" 
href="classsinga_1_1Param.html">Param</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>paramid2param_</b></td></tr>
+<tr class="separator:a0813743d163d6cb6737c39ff4ad4e7dc"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e81a377402bdc1a7a9b4cde678bb413"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a8e81a377402bdc1a7a9b4cde678bb413"></a>
+map&lt; string, LayerProto &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>name2layerproto_</b></td></tr>
+<tr class="separator:a8e81a377402bdc1a7a9b4cde678bb413"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67146adc1622e08f1b8e12764848cb2f"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a67146adc1622e08f1b8e12764848cb2f"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>group_size_</b></td></tr>
+<tr class="separator:a67146adc1622e08f1b8e12764848cb2f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45bb3b83766152d0d9ce6dc6e6a6dd43"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a45bb3b83766152d0d9ce6dc6e6a6dd43"></a>
+<a class="el" href="classGraph.html">Graph</a>&#160;</td><td 
class="memItemRight" valign="bottom"><b>graph_</b></td></tr>
+<tr class="separator:a45bb3b83766152d0d9ce6dc6e6a6dd43"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed 
Description</h2>
+<div class="textblock"><p>The neural network is constructed from user 
configured layers through google protocol buffer. </p>
+<p>TODO support constructing neural network by adding layers explicitly. E.g., 
users create layers and connect them manually in the code.</p>
+<p>Some layers, e.g., <a class="el" href="classsinga_1_1SplitLayer.html" 
title="Replciate this layer into multiple dst layers. ">SplitLayer</a> and 
BridgeSrcLayer/BridgeDstLayer will be added implicitly to partition the neural 
network. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a012046b1543c8c24209e6ccefe4603f9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string singa::NeuralNet::DebugInfo </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Print Norm1 of data and grad of each <a class="el" 
href="classsinga_1_1Layer.html" title="Base layer class. ">Layer</a> and 
parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">net,neural</td><td>network </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0a207c0744182a802925c41355ef0f2f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">map&lt;string, vector&lt;shared_ptr&lt;<a 
class="el" href="classsinga_1_1Layer.html">Layer</a>&gt; &gt; &gt; 
singa::NeuralNet::PartitionLayers </td>
+          <td>(</td>
+          <td class="paramtype">const vector&lt; shared_ptr&lt; <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;&#160;</td>
+          <td class="paramname"><em>layers</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Partition each layer according its partition type and dimension. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">layers</td><td>original unpartitioned layers 
</td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a40c2bb568e630d04b4106f37f61f58e7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static shared_ptr&lt;<a class="el" 
href="classsinga_1_1NeuralNet.html">NeuralNet</a>&gt; 
singa::NeuralNet::SetupNeuralNet </td>
+          <td>(</td>
+          <td class="paramtype">const NetProto &amp;&#160;</td>
+          <td class="paramname"><em>np</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Phase&#160;</td>
+          <td class="paramname"><em>phase</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup the neural network for training, test or validation. </p>
+<p>Parameters for test/validation net can share those from training after 
setup (done outside of this funcion).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">np</td><td>proto for the neural network. 
</td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a947cdee455cd4c29403459aeb7e48f47"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string singa::NeuralNet::ToString </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>construct a json string representing the neuralnet graph. </p>
+<p>The json string can be used by other graph engine to draw a figure for 
displaying the neuralnet structure. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/neuralnet/<a class="el" 
href="neuralnet_8h_source.html">neuralnet.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMServer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMServer-members.html 
b/api/classsinga_1_1PMServer-members.html
new file mode 100644
index 0000000..3715b07
--- /dev/null
+++ b/api/classsinga_1_1PMServer-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1PMServer.html">PMServer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::PMServer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>, including all inherited 
members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dealer_</b> (defined 
in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>group_id_</b> (defined in <a 
class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#a6a10c73069a1e1495672792d43dad42c">HandleGet</a>(Msg
 **msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#abb72a5ae0864e41314e8f4b49e0e2304">HandlePut</a>(Msg
 **msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#a5fea9e785ebb67eb4db6b214693114f3">HandleSyncRequest</a>(Msg
 **msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#a0dd96b16e813a82d7aa853dc8a583a82">HandleSyncResponse</a>(Msg
 **msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#a8ac7bf4ff9cf29135e9a8c08e16f890a">HandleUpdate</a>(Msg
 **msg)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ParamShard</b> typedef (defined 
in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>server_id_</b> 
(defined in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Setup</b>(int group_id, int 
server_id, shared_ptr&lt; ParamShard &gt; shard, const UpdaterProto &amp;proto) 
(defined in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shard_</b> (defined 
in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMServer.html#a84fb182e77ea7a3109aabc74e17cbf69">SyncNow</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>updater_</b> 
(defined in <a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~PMServer</b>() (defined in <a 
class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td 
class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMServer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMServer.html b/api/classsinga_1_1PMServer.html
new file mode 100644
index 0000000..ced5316
--- /dev/null
+++ b/api/classsinga_1_1PMServer.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::PMServer Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1PMServer.html">PMServer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1PMServer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::PMServer Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Parameter manager at the server side.  
+ <a href="classsinga_1_1PMServer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" 
href="pm__server_8h_source.html">pm_server.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:ad92d2621f460a2e1d222c469369dd7f1"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ad92d2621f460a2e1d222c469369dd7f1"></a>
+typedef std::map&lt; int, <br class="typebreak"/>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; 
&gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>ParamShard</b></td></tr>
+<tr class="separator:ad92d2621f460a2e1d222c469369dd7f1"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aeb90a8db3d06feb38d43136f65ae4383"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aeb90a8db3d06feb38d43136f65ae4383"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>Setup</b> (int 
group_id, int server_id, shared_ptr&lt; ParamShard &gt; shard, const 
UpdaterProto &amp;proto)</td></tr>
+<tr class="separator:aeb90a8db3d06feb38d43136f65ae4383"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a10c73069a1e1495672792d43dad42c"><td class="memItemLeft" 
align="right" valign="top">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#a6a10c73069a1e1495672792d43dad42c">HandleGet</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a6a10c73069a1e1495672792d43dad42c"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Process GET request.  <a 
href="#a6a10c73069a1e1495672792d43dad42c">More...</a><br/></td></tr>
+<tr class="separator:a6a10c73069a1e1495672792d43dad42c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td class="memItemLeft" 
align="right" valign="top">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#a8ac7bf4ff9cf29135e9a8c08e16f890a">HandleUpdate</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Process Update request.  <a 
href="#a8ac7bf4ff9cf29135e9a8c08e16f890a">More...</a><br/></td></tr>
+<tr class="separator:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb72a5ae0864e41314e8f4b49e0e2304"><td class="memItemLeft" 
align="right" valign="top">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#abb72a5ae0864e41314e8f4b49e0e2304">HandlePut</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:abb72a5ae0864e41314e8f4b49e0e2304"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Process PUT request.  <a 
href="#abb72a5ae0864e41314e8f4b49e0e2304">More...</a><br/></td></tr>
+<tr class="separator:abb72a5ae0864e41314e8f4b49e0e2304"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fea9e785ebb67eb4db6b214693114f3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a5fea9e785ebb67eb4db6b214693114f3"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#a5fea9e785ebb67eb4db6b214693114f3">HandleSyncRequest</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a5fea9e785ebb67eb4db6b214693114f3"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">TODO Process SYNC request. 
<br/></td></tr>
+<tr class="separator:a5fea9e785ebb67eb4db6b214693114f3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd96b16e813a82d7aa853dc8a583a82"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a0dd96b16e813a82d7aa853dc8a583a82"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#a0dd96b16e813a82d7aa853dc8a583a82">HandleSyncResponse</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a0dd96b16e813a82d7aa853dc8a583a82"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">TODO Process SYNC response. 
<br/></td></tr>
+<tr class="separator:a0dd96b16e813a82d7aa853dc8a583a82"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84fb182e77ea7a3109aabc74e17cbf69"><td class="memItemLeft" 
align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1PMServer.html#a84fb182e77ea7a3109aabc74e17cbf69">SyncNow</a>
 ()</td></tr>
+<tr class="memdesc:a84fb182e77ea7a3109aabc74e17cbf69"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Scheduler for synchronizing 
server groups.  <a 
href="#a84fb182e77ea7a3109aabc74e17cbf69">More...</a><br/></td></tr>
+<tr class="separator:a84fb182e77ea7a3109aabc74e17cbf69"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a0f0d677b900418700e2c9dc842f738b5"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a0f0d677b900418700e2c9dc842f738b5"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>group_id_</b></td></tr>
+<tr class="separator:a0f0d677b900418700e2c9dc842f738b5"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5dc575411ae40bc39a3d4a85eb45849"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac5dc575411ae40bc39a3d4a85eb45849"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>server_id_</b></td></tr>
+<tr class="separator:ac5dc575411ae40bc39a3d4a85eb45849"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44d0f5b0fbdff3fbd18df3879e10a33e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a44d0f5b0fbdff3fbd18df3879e10a33e"></a>
+shared_ptr&lt; ParamShard &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>shard_</b></td></tr>
+<tr class="separator:a44d0f5b0fbdff3fbd18df3879e10a33e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a363f39726e0c81f7c56ce24d0f3b1d95"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a363f39726e0c81f7c56ce24d0f3b1d95"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Dealer.html">Dealer</a> 
&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>dealer_</b></td></tr>
+<tr class="separator:a363f39726e0c81f7c56ce24d0f3b1d95"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfb6abf73f0d8345e686cb12749806cb"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="acfb6abf73f0d8345e686cb12749806cb"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Updater.html">Updater</a> 
&gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>updater_</b></td></tr>
+<tr class="separator:acfb6abf73f0d8345e686cb12749806cb"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed 
Description</h2>
+<div class="textblock"><p>Parameter manager at the server side. </p>
+<p>Repsond to worker's get/put/udpate request, and periodically syncing with 
other servers.</p>
+<p>Normally, the <a class="el" href="classsinga_1_1PMServer.html" 
title="Parameter manager at the server side. ">PMServer</a> creates a response 
message for each request which will be sent back to the one who issued the 
request. However, if the request are not processed successfully, the original 
message will be returned. The sever does not know the returned message 
(response or the original message), it just sends it to the router. The router 
will decide to re-send the request to the server or send it to the worker. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6a10c73069a1e1495672792d43dad42c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandleGet </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process GET request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the orignal message or response 
message </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abb72a5ae0864e41314e8f4b49e0e2304"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandlePut </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process PUT request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the original message or 
response message. If we don't want need to acknowledge the put request, then 
return nullptr. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8ac7bf4ff9cf29135e9a8c08e16f890a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" 
href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandleUpdate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process Update request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the orignal message or response 
message </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a84fb182e77ea7a3109aabc74e17cbf69"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool singa::PMServer::SyncNow </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Scheduler for synchronizing server groups. </p>
+<p>TODO implement the Caffe's synchronization scheduler for data parallelism 
</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/trainer/<a class="el" 
href="pm__server_8h_source.html">pm_server.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMWorker-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMWorker-members.html 
b/api/classsinga_1_1PMWorker-members.html
new file mode 100644
index 0000000..d72d4bb
--- /dev/null
+++ b/api/classsinga_1_1PMWorker-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1PMWorker.html">PMWorker</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::PMWorker Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a>, including all inherited 
members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#aa69dece9e990b3c25315f7e9226d7e5e">Collect</a>(Msg
 **)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#a0ec5f2c8c47854cb10bc1bfda527e255">Get</a>(shared_ptr&lt;
 Param &gt; param, int step)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Get</b>(Msg **msg) 
(defined in <a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>group_id_</b> (defined in <a 
class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a>
 typedef</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#af866eeeb80821f8ac17a6c9e99cebf1b">Put</a>(shared_ptr&lt;
 Param &gt; param, int step)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Put</b>(Msg **msg) 
(defined in <a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_id</b>(int group_id, int 
worker_id) (defined in <a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Setup</b>(int 
group_id, int worker_id, shared_ptr&lt; ParamShard &gt; shard) (defined in <a 
class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>shard_</b> (defined in <a 
class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#abc856cc69b3a638fd56dfeaa429f8a4f">Sharding</a>(int
 param_id)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html#a31953e1006e0b19c10f5998b31e735c3">Update</a>(shared_ptr&lt;
 Param &gt; param, int step)</td><td class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Update</b>(Msg 
**msg) (defined in <a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>worker_id_</b> (defined in <a 
class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMWorker.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMWorker.html b/api/classsinga_1_1PMWorker.html
new file mode 100644
index 0000000..3cf817b
--- /dev/null
+++ b/api/classsinga_1_1PMWorker.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::PMWorker Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1PMWorker.html">PMWorker</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1PMWorker-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::PMWorker Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Parameter manager at the worker side.  
+ <a href="classsinga_1_1PMWorker.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" 
href="pm__worker_8h_source.html">pm_worker.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a2c6442319470a4f557921c7088338afc"><td class="memItemLeft" 
align="right" valign="top">typedef std::map&lt; int, <br class="typebreak"/>
+shared_ptr&lt; <a class="el" 
href="classsinga_1_1ParamCounter.html">ParamCounter</a> &gt; &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a></td></tr>
+<tr class="memdesc:a2c6442319470a4f557921c7088338afc"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Workers from the same group 
resident in the same process share the same ParamShard which contains 
ParamCounters for <a class="el" href="classsinga_1_1Param.html">Param</a> 
objects used/updated by these worekrs.  <a 
href="#a2c6442319470a4f557921c7088338afc">More...</a><br/></td></tr>
+<tr class="separator:a2c6442319470a4f557921c7088338afc"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5f0141f04b1613c8b739fab0291c87da"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a5f0141f04b1613c8b739fab0291c87da"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>Setup</b> (int 
group_id, int worker_id, shared_ptr&lt; <a class="el" 
href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a>
 &gt; shard)</td></tr>
+<tr class="separator:a5f0141f04b1613c8b739fab0291c87da"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86e12af5c96933f53f49248a8121fa7c"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a86e12af5c96933f53f49248a8121fa7c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set_id</b> (int 
group_id, int worker_id)</td></tr>
+<tr class="separator:a86e12af5c96933f53f49248a8121fa7c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc856cc69b3a638fd56dfeaa429f8a4f"><td class="memItemLeft" 
align="right" valign="top">virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#abc856cc69b3a638fd56dfeaa429f8a4f">Sharding</a>
 (int param_id)</td></tr>
+<tr class="separator:abc856cc69b3a638fd56dfeaa429f8a4f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ec5f2c8c47854cb10bc1bfda527e255"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a0ec5f2c8c47854cb10bc1bfda527e255"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#a0ec5f2c8c47854cb10bc1bfda527e255">Get</a> 
(shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; 
param, int step)</td></tr>
+<tr class="memdesc:a0ec5f2c8c47854cb10bc1bfda527e255"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message 
to Get the parameter object. <br/></td></tr>
+<tr class="separator:a0ec5f2c8c47854cb10bc1bfda527e255"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac88e330eb052a919a85a77a3de1ea424"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ac88e330eb052a919a85a77a3de1ea424"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><b>Get</b> (<a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:ac88e330eb052a919a85a77a3de1ea424"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31953e1006e0b19c10f5998b31e735c3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a31953e1006e0b19c10f5998b31e735c3"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#a31953e1006e0b19c10f5998b31e735c3">Update</a> 
(shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; 
param, int step)</td></tr>
+<tr class="memdesc:a31953e1006e0b19c10f5998b31e735c3"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message 
to Update the parameter object. <br/></td></tr>
+<tr class="separator:a31953e1006e0b19c10f5998b31e735c3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3496f3679257b3c337e6c77b860dce3c"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a3496f3679257b3c337e6c77b860dce3c"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><b>Update</b> (<a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:a3496f3679257b3c337e6c77b860dce3c"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa69dece9e990b3c25315f7e9226d7e5e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aa69dece9e990b3c25315f7e9226d7e5e"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#aa69dece9e990b3c25315f7e9226d7e5e">Collect</a>
 (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **)</td></tr>
+<tr class="memdesc:aa69dece9e990b3c25315f7e9226d7e5e"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Collect a <a class="el" 
href="classsinga_1_1Param.html">Param</a> object returned from server. 
<br/></td></tr>
+<tr class="separator:aa69dece9e990b3c25315f7e9226d7e5e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af866eeeb80821f8ac17a6c9e99cebf1b"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="af866eeeb80821f8ac17a6c9e99cebf1b"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1PMWorker.html#af866eeeb80821f8ac17a6c9e99cebf1b">Put</a> 
(shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; 
param, int step)</td></tr>
+<tr class="memdesc:af866eeeb80821f8ac17a6c9e99cebf1b"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message 
to Put the parameter object. <br/></td></tr>
+<tr class="separator:af866eeeb80821f8ac17a6c9e99cebf1b"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace080ba577fdd1add3ec0119990bb1cb"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ace080ba577fdd1add3ec0119990bb1cb"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td 
class="memItemRight" valign="bottom"><b>Put</b> (<a class="el" 
href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:ace080ba577fdd1add3ec0119990bb1cb"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a4947ce4984da0ee4e1486c0d12810827"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a4947ce4984da0ee4e1486c0d12810827"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>group_id_</b></td></tr>
+<tr class="separator:a4947ce4984da0ee4e1486c0d12810827"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0229dda3a527f7a6f650940c4aa54782"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a0229dda3a527f7a6f650940c4aa54782"></a>
+int&#160;</td><td class="memItemRight" 
valign="bottom"><b>worker_id_</b></td></tr>
+<tr class="separator:a0229dda3a527f7a6f650940c4aa54782"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3259dbed95b02f78bfc46374b891b1b"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ae3259dbed95b02f78bfc46374b891b1b"></a>
+shared_ptr&lt; <a class="el" 
href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a>
 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>shard_</b></td></tr>
+<tr class="separator:ae3259dbed95b02f78bfc46374b891b1b"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed 
Description</h2>
+<div class="textblock"><p>Parameter manager at the worker side. </p>
+</div><h2 class="groupheader">Member Typedef Documentation</h2>
+<a class="anchor" id="a2c6442319470a4f557921c7088338afc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::map&lt;int, shared_ptr&lt;<a 
class="el" href="classsinga_1_1ParamCounter.html">ParamCounter</a>&gt; &gt; <a 
class="el" 
href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">singa::PMWorker::ParamShard</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Workers from the same group resident in the same process share the same 
ParamShard which contains ParamCounters for <a class="el" 
href="classsinga_1_1Param.html">Param</a> objects used/updated by these 
worekrs. </p>
+<p>Shared <a class="el" href="classsinga_1_1Param.html">Param</a> objects are 
associated with the same <a class="el" href="classsinga_1_1ParamCounter.html" 
title="Counters used to construct a parameter shard. ">ParamCounter</a>. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="abc856cc69b3a638fd56dfeaa429f8a4f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int singa::PMWorker::Sharding </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>param_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>server id where the parameter 
is maintained. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/trainer/<a class="el" 
href="pm__worker_8h_source.html">pm_worker.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

Reply via email to