index_en.html 8.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10


<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
11
  <title>Distributed Training &mdash; PaddlePaddle  documentation</title>
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  

  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
  

  
31

32 33 34 35 36
  
        <link rel="index" title="Index"
              href="../../genindex.html"/>
        <link rel="search" title="Search" href="../../search.html"/>
    <link rel="top" title="PaddlePaddle  documentation" href="../../index.html"/>
37
        <link rel="up" title="HOW TO" href="../index_en.html"/>
38
        <link rel="next" title="Preparations" href="preparations_en.html"/>
39
        <link rel="prev" title="Detail Description" href="../cmd_parameter/detail_introduction_en.html"/> 
40 41 42 43 44 45 46 47

  
  <script src="../../_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

48 49 50 51 52 53 54 55 56 57 58 59 60
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="../../index_en.html" class="icon icon-home"> PaddlePaddle
          

          
61 62
          </a>

63 64 65 66 67 68
          
            
            
          

          
69 70 71 72 73 74
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
75
</div>
76 77

          
78 79 80 81 82 83 84 85 86
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
                <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../getstarted/index_en.html">GET STARTED</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../build_and_install/index_en.html">Install and Build</a></li>
87
<li class="toctree-l1 current"><a class="reference internal" href="../index_en.html">HOW TO</a><ul class="current">
88
<li class="toctree-l2"><a class="reference internal" href="../cmd_parameter/index_en.html">Set Command-line Parameters</a></li>
89 90 91
<li class="toctree-l2 current"><a class="current reference internal" href="#">Distributed Training</a><ul>
<li class="toctree-l3"><a class="reference internal" href="preparations_en.html">Preparations</a></li>
<li class="toctree-l3"><a class="reference internal" href="cmd_argument_en.html">Command-line arguments</a></li>
92
<li class="toctree-l3"><a class="reference internal" href="multi_cluster/index_en.html">Use different clusters</a></li>
93 94
</ul>
</li>
95
<li class="toctree-l2"><a class="reference internal" href="../rnn/index_en.html">RNN Models</a></li>
96 97 98
<li class="toctree-l2"><a class="reference internal" href="../optimization/gpu_profiling_en.html">Tune GPU Performance</a></li>
</ul>
</li>
99 100
<li class="toctree-l1"><a class="reference internal" href="../../dev/index_en.html">Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../faq/index_en.html">FAQ</a></li>
101 102
</ul>

103 104 105 106
            
          
        </div>
      </div>
107 108
    </nav>

109
    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
110

111 112 113 114 115
      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../../index_en.html">PaddlePaddle</a>
      </nav>
116 117


118 119 120 121
      
      <div class="wy-nav-content">
        <div class="rst-content">
          
122

123
 
124 125 126 127 128



<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
129
    <li><a href="../../index_en.html">Docs</a> &raquo;</li>
130
      
131
          <li><a href="../index_en.html">HOW TO</a> &raquo;</li>
132
      
133
    <li>Distributed Training</li>
134 135 136 137 138 139 140
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="../../_sources/howto/cluster/index_en.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
141
  </ul>
142
  <hr/>
143 144 145 146
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
147 148
  <div class="section" id="distributed-training">
<h1>Distributed Training<a class="headerlink" href="#distributed-training" title="Permalink to this headline"></a></h1>
149 150 151 152 153 154 155 156 157
<p>In this section, we&#8217;ll explain how to run distributed training jobs with PaddlePaddle on different types of clusters. The diagram below shows the main architecture of a distributed trainning job:</p>
<a class="reference internal image-reference" href="../../_images/ps_en.png"><img alt="../../_images/ps_en.png" src="../../_images/ps_en.png" style="width: 500px;" /></a>
<ul class="simple">
<li>Data shard: training data will be split into multiple partitions, trainers use the partitions of the whole dataset to do the training job.</li>
<li>Trainer: each trainer reads the data shard, and train the neural network. Then the trainer will upload calculated &#8220;gradients&#8221; to parameter servers, and wait for parameters to be optimized on the parameter server side. When that finishes, the trainer download optimized parameters and continues its training.</li>
<li>Parameter server: every parameter server stores part of the whole neural network model data. They will do optimization calculations when gradients are uploaded from trainers, and then send updated parameters to trainers.</li>
</ul>
<p>PaddlePaddle can support both synchronize stochastic gradient descent (SGD) and asynchronous SGD.</p>
<p>When training with synchronize SGD, PaddlePaddle uses an internal &#8220;synchronize barrier&#8221; which makes gradients update and parameter download in strict order. On the other hand, asynchronous SGD won&#8217;t wait for all trainers to finish upload at a single step, this will increase the parallelism of distributed training: parameter servers do not depend on each other, they&#8217;ll do parameter optimization concurrently. Parameter servers will not wait for trainers, so trainers will also do their work concurrently. But asynchronous SGD will introduce more randomness and noises in the gradient.</p>
158 159
<div class="toctree-wrapper compound">
<ul>
160 161 162
<li class="toctree-l1"><a class="reference internal" href="preparations_en.html">Preparations</a></li>
<li class="toctree-l1"><a class="reference internal" href="cmd_argument_en.html">Command-line arguments</a></li>
<li class="toctree-l1"><a class="reference internal" href="multi_cluster/index_en.html">Use different clusters</a></li>
163 164 165 166 167 168 169 170 171 172 173
</ul>
</div>
</div>


           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
174
        <a href="preparations_en.html" class="btn btn-neutral float-right" title="Preparations" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
175 176
      
      
177
        <a href="../cmd_parameter/detail_introduction_en.html" class="btn btn-neutral" title="Detail Description" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2016, PaddlePaddle developers.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../',
            VERSION:'',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
211
            HAS_SOURCE:  true
212 213 214 215 216
        };
    </script>
      <script type="text/javascript" src="../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../_static/doctools.js"></script>
217
      <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
218

219 220 221 222 223 224
  

  
  
    <script type="text/javascript" src="../../_static/js/theme.js"></script>
  
225

226
  
227 228 229 230 231 232 233
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   
234 235

</body>
236
</html>