- 7. LightGBM分布式作业如何获取指定机器数目和本地端口号?
7. LightGBM分布式作业如何获取指定机器数目和本地端口号?
执行分布式LightGBM需要在用户程序的配置文件中指定机器数目和本地端口号,此处可以直接从环境变量中获取,因此用户需要在执行脚本里将对应参数写入到配置文件。注意,为避免多个container分配到同一台机器时会修改同份配置文件,需要复制conf文件到可执行脚本的当前目录,具体如下(详细代码可见$XLEARNING_HOME/examples/distLightGBM):
cp train.conf train_real.conf
chmod 777 train_real.conf
echo "num_machines = $LIGHTGBM_NUM_MACHINE" >> train_real.conf
echo "local_listen_port = $LIGHTGBM_LOCAL_LISTEN_PORT" >> train_real.conf
./LightGBM/lightgbm config=train_real.conf
此外用户还需要在程序配置文件中指定机器列表文件,XLearning命名为lightGBMlist.txt
,会在每个worker的执行目录生成,用户在程序配置文件指定参数如下:
machine_list_file = lightGBMlist.txt