Я хочу запустить параллельную функцию на удаленных кластерах, но мне удается запустить ее только на моем локальном кластере
У меня есть 3 разных кластера с 3 разными адресами хоста.
я попытался использовать пакет pathos для запуска вычислений на всех 3 кластерах вместе. Все же мне удается использовать только локальный кластер.
все 3 кластера требуют ssh-аутентификации с именем пользователя и паролем.
Я не нашел способа передать в pathos api имя пользователя и пароль удаленных кластеров.
Я даже пытался открыть туннель от localhost: special_port к одному из удаленных кластеров и запустить пафос на сервере = localhost: special_port, но он не работает (пафос все еще работает только на локальном кластере).
Как правильно выполнить операцию, описанную выше?
from pathos.pools import ParallelPool as ppool
import sshtunnel
import paramiko
with sshtunnel.open_tunnel(
(remote_host, 22),
ssh_username=ssh_username,
ssh_password=ssh_password,
remote_bind_address=(remote_host, 22),
local_bind_address=('', 12345)) as tunnel:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("127.0.0.1", 12345, username=ssh_username, password=ssh_password)
p = ppool(processes=80, servers=("132.67.140.121:22",), )
x = [i for i in range(10000)]
print(p.servers)
y = p.amap(inc, x)
z = y.get()
client.close()
def inc(x):
time.sleep(0.1)
return x**2