You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by di...@apache.org on 2016/03/23 16:09:23 UTC
svn commit: r1736332 - in /incubator/singa/site/trunk/content/markdown/docs:
docker.md mesos.md
Author: dinhtta
Date: Wed Mar 23 15:09:23 2016
New Revision: 1736332
URL: http://svn.apache.org/viewvc?rev=1736332&view=rev
Log:
Update Docker and Mesos documentation
Modified:
incubator/singa/site/trunk/content/markdown/docs/docker.md
incubator/singa/site/trunk/content/markdown/docs/mesos.md
Modified: incubator/singa/site/trunk/content/markdown/docs/docker.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/docker.md?rev=1736332&r1=1736331&r2=1736332&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/docker.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/docker.md Wed Mar 23 15:09:23 2016
@@ -3,11 +3,12 @@
This guide explains how to set up a development environment for SINGA using Docker. It requires only Docker to be installed. The resulting image contains the complete working environment for SINGA. The image can then be used to set up cluster environment over one or multiple physical nodes.
1. [Build SINGA base](#build_base)
-2. [Build SINGA with Mesos and Hadoop](#build_mesos)
-3. [Pre-built images](#pre_built)
-4. [Launch and stop SINGA (stand alone mode)](#launch_stand_alone)
-5. [Launch pseudo-distributed SINGA on one node](#launch_pseudo)
-6. [Launch fully distributed SINGA on multiple nodes](#launch_distributed)
+2. [Build GPU-enabled SINGA](#build_gpu)
+3. [Build SINGA with Mesos and Hadoop](#build_mesos)
+4. [Pre-built images](#pre_built)
+5. [Launch and stop SINGA (stand alone mode)](#launch_stand_alone)
+6. [Launch pseudo-distributed SINGA on one node](#launch_pseudo)
+7. [Launch fully distributed SINGA on multiple nodes](#launch_distributed)
---
@@ -15,11 +16,11 @@ This guide explains how to set up a deve
#### Build SINGA base image
````
-$ cd tool/docker/singa
-$ sudo docker build -t singa/base .
+$ cd $SINGA_HOME/..
+$ sudo docker build -t singa/base -f incubator-singa/tool/docker/singa/Dockerfile .
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
-singa/base latest XXXX XXX 2.01 GB
+singa/base latest XXXX XXX XXX GB
````
The result is the image containing a built version of SINGA.
@@ -30,14 +31,27 @@ The result is the image containing a bui
---
+<a name="build_gpu"></a>
+#### Build SINGA with GPU support
+
+````
+$ cd $SINGA_HOME/..
+$ sudo docker build -t singa/gpu -f incubator-singa/tool/docker/singa/Dockerfile_gpu .
+$ sudo docker images
+REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
+singa/gpu latest XXXX XXX XXX GB
+````
+
+---
+
<a name="build_mesos"></a>
#### Build SINGA with Mesos and Hadoop
````
-$ cd tool/docker/mesos
-$ sudo docker build -t singa/mesos .
+$ cd $SINGA_HOME/..
+$ sudo docker build -t singa/mesos -f incubator-singa/tool/docker/mesos/Dockerfile .
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
-singa/mesos latest XXXX XXX 4.935 GB
+singa/mesos latest XXXX XXX XXX GB
````
![singa/mesos](http://www.comp.nus.edu.sg/~dinhtta/files/images_mesos.png#1)
@@ -83,6 +97,17 @@ $ sudo docker exec -it XYZ /bin/bash
Inside the launched container, the SINGA source directory can be found at `/root/incubator-singa`.
+**Launching GPU-enabled container**
+First, make sure that the host GPUs are up and running. The list of `NVIDIA` devices should be listed at
+`/dev/nvidiaYYY`.
+
+Next, start a new container, passing it all the devices
+
+````
+$ sudo docker run -dt --device /dev/nvidiaYYY --device /dev/nvidiaYYY ... --name XYZ singa/gpu /usr/bin/supervisord
+$ sudo docker exec -it XYZ /bin/bash
+````
+
**Stopping the container**
````
@@ -124,7 +149,24 @@ guide](mesos.html)
for details of how to start training with multiple SINGA instances.
**Important:** the container that assumes the role of Hadoop's namenode (and often Mesos's and Zookeeper's mater node as well) **must** be named `node0`. Otherwise, the user must log in to individual containers and change the Hadoop configuration separately.
-
+
+**Notes on Docker version >=1.9** Newer version of Docker adopted a built-in DNS server at the deamon. As a consequence,
+name resolution inside containers now **cannot** depend on the automatically updated `/etc/hosts` files as in version
+1.8 and earlier. Here we recommend two ways to make pseudo-distributed and distributed SINGA containers work as before
+
+1. Downgrade to docker version 1.8 and earlier
+ ````
+ $ sudo apt-get install docker-engine=1.8.3-0~trusty
+ ````
+2. Manually log in to each running container, by `sudo exec -it <name> /bin/bash`, and edit the `/etc/hosts` with the
+assigned IP addresses of all other running containers.
+
+ ````
+ node0 <ip0>
+ node1 <ip1>
+ ...
+ ````
+
---
<a name="launch_distributed"></a>
Modified: incubator/singa/site/trunk/content/markdown/docs/mesos.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/mesos.md?rev=1736332&r1=1736331&r2=1736332&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/mesos.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/mesos.md Wed Mar 23 15:09:23 2016
@@ -32,6 +32,9 @@ To check if the setup has been successfu
hadoop dfsadmin -report
````
+**_Important_** If the Docker version is 1.9 or newer, make sure [name resolution is set up
+properly](docker.html#launch_pseudo)
+
#### Mesos logs
Mesos logs are stored at `/opt/lt-mesos-master.INFO` on `node0` and `/opt/lt-mesos-slave.INFO` at other nodes.