PS-Lite使用
2019-03-16 本文已影响0人
王勇1024
入门
调试PS-Lite
一种调试方式是记录所有的通信日志。可以通过指定环境变量来实现:
-
:记录连接信息
-
:记录所有数据通信信息
例如,在根目录执行。然后
export PS_VERBOSE=1; ./local.sh 1 1 ./test_connection
可能会有如下输出
[19:57:18] src/van.cc:72: Node Info: role=schedulerid=1, ip=127.0.0.1, port=8000
[19:57:18] src/van.cc:72: Node Info: role=worker, ip=128.2.211.110, port=58442
[19:57:18] src/van.cc:72: Node Info: role=server, ip=128.2.211.110, port=40112
[19:57:18] src/van.cc:336: assign rank=8 to node role=server, ip=128.2.211.110, port=40112
[19:57:18] src/van.cc:336: assign rank=9 to node role=worker, ip=128.2.211.110, port=58442
[19:57:18] src/van.cc:347: the scheduler is connected to 1 workers and 1 servers
[19:57:18] src/van.cc:354: S[8] is connected to others
[19:57:18] src/van.cc:354: W[9] is connected to others
[19:57:18] src/van.cc:296: H[1] is stopped
[19:57:18] src/van.cc:296: S[8] is stopped
[19:57:18] src/van.cc:296: W[9] is stopped
这里,
和
分别表示scheduler,server和worker。
使用特定的网络接口
默认情况下PS-Lite会自动选择一个可用的网络接口。但是,对于有多个网络接口的机器,我们可以通过环境变量来指定网络接口。例如,要使用无限带
接口,我们可以采用如下方式:
export DMLC_INTERFACE=ib0; commands_to_run
如果所有的PS-Lite节点都运行在同一台机器上,我们可以通过设置来使用内存拷贝取代本地网络接口来提高性能:
export DMLC_LOCAL=1; commands_to_run
启动PS-Lite的环境变量
如果我们想将PS-Lite移植到除、
、
和
之外的其它集群资源管理器上,本章将会很有用。
要想启动PS-Lite,我们需要提供为下面的环境变量提供正确的值:
-
:worker数量
-
:server数量
-
:当前节点的角色,可以是worker,server或scheduler
-
:scheduler节点的ip或域名
-
:scheduler节点监听的端口
不可靠网络下的重传
网络传输中出现消息丢失是比较常见的现象,当一个重要的消息传递失败时,程序会挂起。这时,可以让PS-Lite为每一个消息发送一个额外的ACK,如果在指定时间内没有收到ACK,则重传这条消息。要想启动这个功能,我们可以设置下面的环境变量:
-
:是否启动重传机制,默认是0.
-
:如果超过指定的毫秒没有收到ACK,PS_Lite就会重发该消息,默认是1000.
我们可以设置来指定销毁接受到的消息的比例来用于测试。例如,
会将10%收到的消息销毁。