wangwei created SINGA-7:
---------------------------

             Summary: Implement shared memory Hogwild algorithm
                 Key: SINGA-7
                 URL: https://issues.apache.org/jira/browse/SINGA-7
             Project: Singa
          Issue Type: New Feature
            Reporter: wangwei


The original Hogwild [1] algorithm works on a multi-core machine with shared 
memory. There are two ways to implement it in SINGA
1. Following the worker-server architecture to launch multiple worker groups 
and one server group. Share the memory space of parameter values among worker 
groups and the server group. Worker groups compute gradients and the server 
group updates parameter values. 

2. Using worker-only architecture like Caffe. Share the memory space of 
parameter values among worker groups. Workers compute gradients and update 
parameters locally.

To simplify the implementation, we can firstly restrict the group size to be 1.

There are also two choices for the frequency of reporting the training/test 
performance.
1. based on training iterations
2. based on training time (e.g., seconds)

Once the shared memory version is finished, we will extend it to distributed 
environment.

[1]B. Recht, C. Re, S. J. Wright, and F. Niu. Hogwild: A lock-free approach to 
parallelizing stochastic gradient descent. In NIPS, pages 693–701, 2011.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to