Хранение объектов между удаленными функциями в Ray

Я пишу проект, который много раз пишет с использованием одних и тех же данных, и я использовал Ray для увеличения масштаба в настройках кластера, однако файлы слишком велики, чтобы отправлять туда и обратно / сохранять в хранилище объектов ray. все время. Есть ли способ сохранить объекты Python на локальных узлах между вызовами удаленных функций?


person Xavanteex    schedule 15.11.2020    source источник


Ответы (1)


Запись в файлы всегда имеет тенденцию быть сложным в распределенных системах, поскольку обычные файловые системы не используются совместно между машинами. Рэй обычно не мешает работе файловой системы, но я думаю, что у вас есть несколько вариантов.

  1. Увеличьте размер хранилища объектов: вы можете изменить размер хранилища плазмы и место его хранения в файл большего размера, установив флаги --object-store-memory и --plasma-directory.

  2. Используйте распределенную файловую систему: распределенные файловые системы, такие как NFS, позволяют вам совместно использовать часть вашей файловой системы на разных машинах. Если вы вручную настроили общий ресурс NFS, вы можете указать Рэю на запись в файл в NFS.

  3. Не используйте файловую систему: хотя технически это не ответ, возможно, это наиболее типичный подход к распределенным системам. Вместо записи в файловую систему рассмотрите возможность записи в S3 или аналогичное хранилище KV или хранилище Blob.

Минусы этих подходов:

Самым большим недостатком (1) является то, что, если вы не будете осторожны, вы можете плохо повлиять на вашу производительность.

Самым большим недостатком (2) является то, что он может быть медленным. В частности, если вам нужно читать и записывать данные с нескольких узлов. Второстепенным недостатком является то, что вам придется настраивать NFS самостоятельно.

Самым большим недостатком (3) является то, что теперь вы полагаетесь на внешнюю службу, и это, возможно, не является прямым решением вашей проблемы.

person Alex    schedule 17.11.2020