Невозможно понять распараллеленный вывод кода в Ray - PullRequest
0 голосов
/ 26 февраля 2020

Если я правильно понимаю, следующий фрагмент кода должен работать параллельно

@ray.remote
class Worker:
  ...

  def train(self, item, i):
    time.sleep(i)
    logging.info(f'{i} {item}')
...

worker = Worker.remote()
list = ['a', 'b', 'c']
results = ray.get([worker.train.remote(item, len(list) - idx) for idx, item in enumerate(list)])
print(results)
logging.info("successful print")

Это должно вывести

1 c
2 b
3 a
[1,2,3]

Однако, это выдает:

3 a
2 b
[3,2,1]

Я новичок в использовании Ray и не могу понять это поведение. Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово!

1 Ответ

0 голосов
/ 27 февраля 2020

Актер работает в рамках одного процесса. В результате worker.train.remote () будет синхронным.

...