blob: 36d8fa1f4e56cf9eec2da0cd2600940f82e69aa5 [file] [log] [blame]
<!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">
<title>SINGA アーキテクチャー &mdash; incubator-singa 0.3.0 documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="top" title="incubator-singa 0.3.0 documentation" href="../index.html"/>
<script src="../_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<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.html" class="icon icon-home"> incubator-singa
<img src="../_static/singa.png" class="logo" />
</a>
<div class="version">
0.3.0
</div>
<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>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="index.html">ドキュメント</a></li>
</ul>
<p class="caption"><span class="caption-text">Development</span></p>
<ul class="simple">
</ul>
<p class="caption"><span class="caption-text">Community</span></p>
<ul class="simple">
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<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.html">incubator-singa</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> &raquo;</li>
<li>SINGA アーキテクチャー</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="singa">
<span id="singa"></span><h1>SINGA アーキテクチャー<a class="headerlink" href="#singa" title="Permalink to this headline"></a></h1>
<hr class="docutils" />
<div class="section" id="">
<span id="id1"></span><h2>ロジカル アーキテクチャー<a class="headerlink" href="#" title="Permalink to this headline"></a></h2>
<p><img src="../_static/images/logical.png" style="width: 550px"/></p>
<p><strong> Fig.1 - システム アーキテクチャー</strong></p><p>SINGAは、多様な分散<a class="reference external" href="frameworks.html">トレーニング フレームワーク</a> (同期、または非同期トレーニング).
をサポートするための柔軟な構造をもっています。
Fig.1. にシステムの構造を示します。
特徴としては、複数の server グループと、worker グループを持つことです。</p>
<ul>
<li><p class="first"><strong>Server グループ</strong></p>
<p>Server グループは、モデルパラメーターのレプリカを持ち、worker グループからのリクエストに従いパラメーターのアップデートを担当します。隣接した server グループ達は、パラメーターを定期的に同期させます。通常1つの server グループは複数の server で構成され、各 server はモデルパラメーターの分割された一部を担当します。</p>
</li>
<li><p class="first"><strong>Worker グループ</strong></p>
<p>各 worker グループは、1つの server グループと通信します。1つの worker グループは、パラメーターの勾配計算を担当します。また分割されたデータの一部に対し“完全な”モデルレプリカをトレーニングします。すべての worker グループ達は、対応する server グループ達と非同期的に通信します。しかし、同じ worker グループ内の worker 達は、同期します。</p>
</li>
</ul>
<p>同一グループ内での worker 達の分散トレーニングには、たくさんの異なった方法があります。</p>
<ul class="simple">
<li><strong>モデル 並列化</strong>: 各 worker は、グループに振り分けられたすべてのデータに対して、パラメーターのサブセットを計算します。</li>
<li><strong>データ 並列化</strong>: 各 worker は、振り分けられたデータのサブセットに対して、すべてのパラメーターを計算します。</li>
<li><strong>ハイブリッド 並列化</strong>: SINGAは、上記の方法を組み合わせたハイブリッドな並列化もサポートします。</li>
</ul>
</div>
<div class="section" id="">
<span id="id2"></span><h2>実装<a class="headerlink" href="#" title="Permalink to this headline"></a></h2>
<p>SINGAでの servers と workers は、別スレッドで動く実行ユニットです。</p>
<p>In SINGA, servers and workers are execution units running in separate threads.
それらは <a class="reference external" href="communication.html">messages</a> を利用して通信します。
各プロセスは、ローカル messages を集め、それを対応するレシーバーに転送する stub としてメインスレッドを実行します。</p>
<p>各 server グループと worker グループは、“完全な”モデルレプリカである <em>ParamShard</em> オブジェクトを保持します。
もし workers と servers が同じプロセスで走るなら、
それらの <em>ParamShard</em> (パーティション)は、同じメモリスペースを共有するよう設定されます。
この場合、異なる実行ユニット間を行き来する messages は通信コストを抑えるためにデータのポインタだけを含みます。
プロセス間通信の場合とは異なり、messsages はパラメーターの値を含みます。</p>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2016 The Apache Software Foundation. All rights reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners..
</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:'0.3.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</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>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" aria-label="versions">
<img src="../_static/apache.jpg">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> incubator-singa </span>
v: 0.3.0
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Languages</dt>
<dd><a href="../../en/index.html">English</a></dd>
<dd><a href="../../zh/index.html">中文</a></dd>
<dd><a href="../../jp/index.html">日本語</a></dd>
<dd><a href="../../kr/index.html">한국어</a></dd>
</dl>
</div>
</div>
<a href="https://github.com/apache/incubator-singa">
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
alt="Fork me on GitHub">
</a>
</body>
</html>