blob: 356b0343e6b8a6fdc3aa4521b000701fdf0676fb [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> (동기 혹은 비동기 트레이닝)을 지원하는 구조를 가지고 있습니다.
특징으로는 여러 server그룹 과 worker그룹을 가지고 있습니다.</p>
<ul>
<li><p class="first"><strong>Server 그룹</strong></p>
<p>Server그룹은 모델 매개 변수의 복제를 가지고 worker그룹의 요청에 따라 매개 변수의 업데이트를 담당합니다. 인접된 server그룹들은 매개 변수를 정기적으로 동기화합니다. 일반적으로 하나의 server그룹은 여러 server로 구성되며, 각 server는 모델 매개 변수의 분할 된 부분을 담당합니다.</p>
</li>
<li><p class="first"><strong>Worker 그룹</strong></p>
<p>각 worker그룹은 하나의 server그룹과 통신합니다. 하나의 worker그룹은 매개 변수의 구배계산을 담당합니다. 또한 분할 된 일부 데이터를 써서 &#8220;전체&#8221;모델의 레프리카를 트레이닝합니다. 모든 worker그룹들은 해당 server그룹들과 비동기 통신을 합니다. 그러나 같은 worker그룹의 worker들은 동기합니다.</p>
</li>
</ul>
<p>동일 그룹 내에서 worker들의 분산 트레이닝에는 많은 방법이 있습니다.</p>
<ul>
<li><p class="first"><strong>모델 병렬화</strong></p>
<p>각 worker그룹에 배정 된 모든 데이터에 대해 매개 변수의 부분 집합을 계산합니다.</p>
</li>
<li><p class="first"><strong>데이터 병렬화</strong></p>
<p>각 worker는 배분 된 데이터의 부분 집합에 대해 모든 매개 변수를 계산합니다.</p>
</li>
<li><p class="first"><strong>하이브리드 병렬화</strong></p>
<p>위의 방법을 조합한 하이브리드 병렬화를 지원합니다.</p>
</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>이들은 <a class="reference external" href="communication.html">messages</a>를 이용하여 통신을 합니다.
모든 프로세스는 메인 스레드인 stub을 실행하여 로컬 messages를 수집하고 대응되는 receiver에 전송합니다.</p>
<p>각 server그룹과 worker그룹은 &#8220;전체&#8221;모델 레프리카인 <em>ParamShard</em> 를 가집니다.
만약 workers 와 servers 가 동일한 프로세스에서 실행 된다면,
<em>ParamShard</em> (파티션)은 메모리 공간을 공유하도록 설정됩니다.
이 경우 다른 실행 유닛 사이를 오가는 messages는 통신 비용을 줄이기 위해 데이터의 포인터 만 포함합니다.
프로세스 간 통신의 경우와는 달리 messages는 파라미터 값을 포함합니다.</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>