mxnet
версия 1.3.0
Я пытаюсь [train_mnist.py] [1] на 2 узлах кластера, один с 3 графическими процессорами (узел A) и один с 1 графическим процессором (узел B),После этого [сообщения в блоге] [2] я делаю это, используя предоставленный скрипт [launch.py] [3] в репозитории mxnet
.
Я настроил файл hosts
, который состоит изиз двух имен хостов:
username@nodeA
username@nodeB
И затем я попытался запустить распределенное обучение следующим образом:
python3 launch.py -n 4 -H hosts "/opt/python/current/bin/python3 train_mnist.py
--network mlp --lr-factor .9 --lr .01 --kv-store dist_sync"
(Обратите внимание, что я изменил fit.py, чтобы скрипт обнаружил, какмногие gpus находятся на его локальном хосте и устанавливают context
соответственно, и я убедился, что это работает на каждом узле отдельно).
Я сталкиваюсь с этой ошибкой:
Traceback (most recent call last):
File "train_mnist.py", line 28, in <module>
from common import find_mxnet, fit
File "/home/username/username/common/find_mxnet.py", line 20, in <module>
import mxnet as mx
File "/opt/python/current/lib/python3.6/site-packages/mxnet/__init__.py", line 57, in <module>
from . import kvstore_server
File "/opt/python/current/lib/python3.6/site-packages/mxnet/kvstore_server.py", line 85, in <module>
_init_kvstore_server_module()
File "/opt/python/current/lib/python3.6/site-packages/mxnet/kvstore_server.py", line 82, in _init_kvstore_server_module
server.run()
File "/opt/python/current/lib/python3.6/site-packages/mxnet/kvstore_server.py", line 73, in run
check_call(_LIB.MXKVStoreRunServer(self.handle, _ctrl_proto(self._controller()), None))
File "/opt/python/current/lib/python3.6/site-packages/mxnet/base.py", line 252, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [10:44:47] src/van.cc:291: Check failed: (my_node_.port) != (-1) bind failed
И это продолжается с информацией трассировки стека:
Stack trace returned 10 entries:
[bt] (0) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x3617ba) [0x7f2cb77d37ba]
[bt] (1) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x361dd1) [0x7f2cb77d3dd1]
[bt] (2) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x312b3fa) [0x7f2cba59d3fa]
[bt] (3) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x31352fa) [0x7f2cba5a72fa]
[bt] (4) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x31265e9) [0x7f2cba5985e9]
[bt] (5) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(+0x2be69d3) [0x7f2cba0589d3]
[bt] (6) /opt/python/current/lib/python3.6/site-packages/mxnet/libmxnet.so(MXKVStoreRunServer+0x88) [0x7f2cb9e4b7f8]
[bt] (7) /usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call_unix64+0x4c) [0x7f2d12c9ddae]
[bt] (8) /usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call+0x22f) [0x7f2d12c9d71f]
[bt] (9) /opt/python/current/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so(_ctypes_callproc+0x29f) [0x7f2d12eb24af]
Что я пробовал до сих пор:
- Сокращение моего файла хостов, чтобы включить только один хост.Я попытался с обоими вариантами (так что работает только
nodeA
или просто nodeB
), но я получил ту же ошибку - Изменение количества рабочих (но я думал, что это должно отражать количество доступных графических процессоров)
- Ищите
my_node_
в любом из двух последних файлов, упомянутых в трассировке, а именно /opt/python/current/lib/python3.6/site-packages/mxnet/base.py
и /opt/python/current/lib/python3.6/site-packages/mxnet/kvstore_server.py
.Кажется, что ни один из этих файлов не содержит ссылки на эту переменную.
Я не уверен, куда идти отсюда.У меня сложилось впечатление, что распределенное обучение должно быть довольно плавным с mxnet
, поэтому я надеюсь, что это легко исправить.Приветствуются предложения о том, что проверять и / или как отлаживать этот код.Спасибо.
[1]: https://github.com/apache/incubator-mxnet/blob/master/example/image-classification/train_mnist.pyn
[2]: https://tsmatz.wordpress.com/2017/02/22/mxnetr-gpu-acceleration-distributed-training-active-learning/
[3]: https://github.com/apache/incubator-mxnet/blob/master/tools/launch.py