Как я могу гарантировать, что моя логика Python работает исключительно на рабочих узлах Apache Ray?Python

Программы на Python
Ответить
Anonymous
 Как я могу гарантировать, что моя логика Python работает исключительно на рабочих узлах Apache Ray?

Сообщение Anonymous »

Я использую Apache Ray для создания индивидуального кластера для выполнения моей логики. Однако когда я отправляю свои задачи с помощью ray.remote, они выполняются на узле драйвера, а не на рабочих узлах, которые я настроил во время инициализации Ray. Как я могу гарантировать, что моя логика работает исключительно на рабочих узлах?
import os
os.environ["RAY_PROFILING"] = "1"
os.environ["RAY_task_events_report_interval_ms"] = "0"

import ray
from ray.util.spark import setup_ray_cluster, shutdown_ray_cluster
from ray.util import get_node_ip_address

RAY_LOGS_VOLUME_PATH = "***/temp/apache_ray_logs"
RAY_TIMELINE_VOLUME_PATH = "***/temp/apache_ray_logs/timeline.json"
MAX_WORKER_NODES = 2

try:
shutdown_ray_cluster()
except:
pass

try:
ray.shutdown()
except:
pass

if not os.path.exists(RAY_LOGS_VOLUME_PATH):
os.makedirs(RAY_LOGS_VOLUME_PATH)

_, cluster_address = setup_ray_cluster(
max_worker_nodes = MAX_WORKER_NODES,
memory_worker_node = 28 * 2**30,
num_cpus_per_node = 4,
num_gpus_worker_node = 0,

collect_log_to_path = RAY_LOGS_VOLUME_PATH
)

ray.init(
address = cluster_address,
ignore_reinit_error = True
)

ray.timeline(filename=RAY_TIMELINE_VOLUME_PATH)

@ray.remote
def some_function(input):
print(f"Node used: {get_node_ip_address()}")
# Some Logic

sources = ["input1", "input2"]
results = ray.get([some_function.remote(x) for x in sources])


Подробнее здесь: https://stackoverflow.com/questions/791 ... ray-worker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»