2014-09-04 2 views
1

Прежде всего, слово «окружающая среда» имеет разные значения, поэтому позвольте мне уточнить, что я имею в виду.Как передать среду выполнения SGE

Я работаю над потоком Python в Linux, и есть определенные библиотеки, программные элементы и файлы и т. Д. (Например, yaml), которые необходимы для запуска этого потока и распознавания пользовательских команд. Когда я говорю об окружающей среде, я имею в виду весь набор зависимостей.

Что я думаю о способе инкапсуляции всех этих «реквизитов» во что-то (я не знаю технического термина для такой вещи, если это вообще возможно) и передать это что-то в механизм сетки, поэтому что все узлы на GE не должны иметь один и тот же набор программ, установленных библиотек и могут использовать это для выполнения задания.

Кто-нибудь сталкивался с таким сценарием? Это вообще возможно ?

В качестве альтернативы, я должен выполнить ssh в каждом узле и убедиться, что эти библиотеки и т. Д. Установлены индивидуально.

ответ

1

Я вижу два основных варианта.

  1. Виртуальная среда: создайте virtual environment, который будет монтироваться на ваших узлах. Ваши рабочие места должны использовать эту виртуальную среду. (Обратите внимание: я думаю, что virtualenv работает с полными путями, поэтому вам нужно будет установить их по тому же пути, что и на узле maaster.)
  2. Используйте что-то вроде docker для упаковки (или, как вы написали, инкапсулируете) своих исполняемых файлов, чтобы все библиотеки, в которых они нуждаются, являются самодостаточными.
+0

Да, докеры кажутся хорошей идеей для подхода «сделай сам». В настоящее время я использую несколько узлов, поскольку время вычисления не является проблемой для задания. –

+0

Удалось ли вам использовать Docker для упаковки среды для распространения на рабочие узлы? –