Comments (5)
The key idea is that co-locating servers and workers causes bandwidth contention. If you already read this, let me give you an example.
Imagine you have 4 physical machines, and put one worker and one server on each physical machine (e.g., worker0 and server0 on same machine0). Say the model size is 1. In each iteration, worker0 needs to sends out 1/4 data to server1, server2 and server3, respectively (in total 3/4); meanwhile, server0 needs to sends out 1/4 data to worker1, worker2 and worker3, respectively (in total 3/4). Therefore, machine0 needs to send out 3/2 data in one iteration. You will find this value is equivalent to allreduce case.
(However, if you put servers on different machines, you will see the value is 1)
In short, if you co-locate workers & servers, the communication overhead is the same as allreduce.
from byteps.
In the same example, if a remote server is used, a remote server(totally 4 servers and 4 workers) needs to receive M/4 data from each worker and send M/4 data to each worker. The total data worker 0 transfers is 2M, which is greater than 3M/2, isn't it? That is to say, the server's bandwidth bottleneck is more serious.
Expect your reply. Thanks.
from byteps.
I am talking about one direction. Sending and receiving are duplex (two different directions) and do not affect each other in terms of bandwidth.
You can imagine there are two channels between two endpoints: one is for sending traffic from A to B, and the other is for B to A. They do not affect each other at all.
from byteps.
Thank you. That makes sense.
from byteps.
Closing this.
from byteps.
Related Issues (20)
- Stuck in the bps.init(). HOT 7
- Is it right to do allreduce immediately for non-zero ranks in bytescheduler? HOT 2
- 啥时候支持sparse模型?
- 有计划支持纯cpu吗?我们worker也用cpu机器的 HOT 2
- benchmark with cross barrier error
- Successfully installed BytePS but cannot import byteps.torch or byteps.tensorflow HOT 2
- Running multiple workers on a single GPU machine
- Release BytePS docker image support for TF2
- 安装报错 HOT 1
- Communication failure in MXNet with BytePS HOT 3
- support for fault tolerance and straggler mitigation
- broadcast and is_initialized api are not supported with pytorch.
- Supported environment
- 安装问题
- Mistakes of Workload calculation HOT 5
- How does the tensorflow scheduler plugin used in the tf_benchmark_cnn.py HOT 1
- segmentation fault while launching the worker HOT 1
- Is there any benchmark comparison with Megatron-LM ?
- 支持的cuda和pytorch版本
- install failed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from byteps.