Я пытаюсь порождать процессы на удаленном узле. Код напоминает ответ, который я нашел здесь
if __name__ == "__main__":
from pathos.pp import ParallelPythonPool as Pool
def sleepy_squared(x):
from time import sleep
sleep(1.0)
import socket
print(socket.gethostname())
return x**2
p = Pool(8, servers=('151.49.140.246:1234',))
# use an asynchronous parallel map
x = [1,2,3,4,5,6,7,8,9]
res = p.amap(sleepy_squared, x)
print(res.get())
Проблема в том, что когда я запускаю этот код, pathos
продолжает работать на моей локальной машине, игнорируя атрибут сервера. Я хотел бы, чтобы функция запускалась только на удаленном сервере (или cra sh, если он недоступен). Для настройки сервера я запускаю файл ppserver.py
(находится в папке Scripts в установке Anaconda). Я попытался запустить его с несколькими конфигурациями
python ppserver.py -d
python ppserver.py -i 127.0.0.1 -p 1234 -d
python ppserver.py -i 151.49.140.246 -p 1234 -b 255.255.255.0 -d
(последняя даже не работает)
Я не могу честно понять, если проблема со стороной сервера конфигурации ( хотя сервер слушает) или на стороне клиента (серверы игнорируются) или оба.