Требуется ли распределенному узлу планировщика dask та же среда, что и рабочим узлам?

#dask #dask-distributed

#dask #dask-распределенный

Вопрос:

При настройке распределенного кластера dask с помощью базового метода CLI (т.Е. dask-scheduler, dask-worker), требуется ли узлу планировщика dask та же среда (например, пакеты), что и рабочим узлам? У меня есть docker swarm с блоками NVIDIA Jetson AGX (Arm64v8 GPU) в качестве рабочих и сервером Intel x86-64 в качестве планировщика (без графического процессора), поэтому нелегко (если это невозможно) иметь ту же среду. Запросы в основном будут поступать от ноутбуков Jupyter, обслуживаемых подразделениями Jetson. Следовательно, среды запросов и вычислений одинаковы (разные контейнеры, но одинаковые изображения), отличается только планировщик.

Ответ №1:

Ответ примерно «да». Очень важно, чтобы клиент и рабочий использовали одинаковые (или совместимые, что почти одно и то же) версии пакетов всех пакетов, к которым прикасается ваш код, поскольку объекты будут обработаны в одной среде и не обработаны в другой.

Для планировщика да, dask / distributed должны точно совпадать, поскольку, вероятно, изменилась какая-то внутренняя логика обмена сообщениями. Но вы также должны попытаться сделать версии других пакетов, используемых в сообщении, одинаковыми; трудно дать исчерпывающий список из них. Разница может привести к сбою. В настоящее время client.get_versions метод проверяет версии: python, dask, distributed, msgpack, cloudpickle, tornado, toolz, numpy, lz4, blosc. Если все они одинаковые, у вас могут быть хорошие шансы.