Возможные проблемы сетевого просчёта.
Все диспетчеры только запускают командную строку на удалённом компьютере. Но пользователи нередко наделяют возможностями рабочей программы и сам диспетчер. Не раз слышал вопросы типа - а может ли он считать в EXR, а может ли бейкать оклюжн и т.п. Диспетчер запустит Maya на удалённом компьютере, со сценой которую настроили Вы, и что уж она сделает или умеет делать, ему по барабану.
Бывает так что получается разный результат когда вы в открытой вами рабочей программе нажимаете на кнопку "рендер" и когда вы посылаете считаться на ферме. Часто в этом винят программу диспетчер - "почему она считает по-другому". А попробуйте сами запустить ту командну, которую запускает диспетчер. Обычно тут всё и выясняется. Ошибки же диспетчера существуют, но они другого характера. Например перестал отвечать клиент, приходит неправильная информация о его ресурсах, просто завис клиент или сервер. Но неправильно посчитать он не может в принципе, так он ничего не считает, а просто запускает ваши же рабочие программы с вашими же сценами на других компьютерах.
Диспетчер может только запустить неправильную команду. Тогда надо выяснять кто её подал диспетчеру.
- Вы сами писали эти команды "ручками" и отправляли диспетчеру.
Тут понятно, кто накосячил.
- Вы послали считаться сцену используя для этого готовые инструменты ("менюшки", "окошки").
- У вас есть технической директор.
Жалуйтесь.
Может он сам прикручивал диспетчер к вашей рабочей программе.
Или подправил сущесвующие инструменты.
Тогда он виноват.
Или он будет общаться с разработчиками. Или даже править их баг.
Теперь в любом случае это его проблема.
- У вас нет технического директора.
Если вы сами ничего не меняли в диспетчере (то есть если вы сами не ТД),
значит вы пользуетесь инструментами, предоставляемыми разработчиками диспетчера.
Тогда в диспетчере баг.
Это значит он не работает у всех пользователей во всех конторах, и у разработчиков тоже.
Это скорее всего уже заметили, и возможно исправили.
Хочу ещё обратить ваше внимание на то, что есть задачи которые нельзя разделить на кадры и каждый считать по отдельности. Это задачи, где каждый следующий кадр зависит от предыдущего. Сюда попадают всевозможные симуляции: партиклы, одежда, волосы, мех, флюиды. Что произойдет если вы сразу переместитесь в какой-нибудь 200 кадр, зависит от приложения. Симуляции либо не произойдёт вовсе, либо она будет считаться с начала на каждом компьютере, тогда смысла нет её считать на ферме. Перед расчётом картинки на ферме симуляцию обычно бейкают на одном компьютере.
Надо как-то узнать какую конкретно команду диспетчер просит запустить клиента. Наверняка это можно сделать в любом диспетчере, иначе будут большие трудности с его тестированием и настройкой.
(в Афанасии откройте задачу и кликните мышкой на "таск", внизу а линии "статуса" она появится, от туда её можно скопировать, рабочий каталог можно посмотреть свойствах "блока")
Этот "troubleshooting" запуска команды. Поэтому можно сказать что это "troubleshooting" любого диспетчера.
- Запустите эту командную строку на своём компьютере.
- Не запускается.
- Проблемы с путями.
-
Командная строка в любой OS показывает где вы находитесь.
Возможно команда должна быть запущена из определённого места, если вы используете относительные пути.
Тогда перейдите в ту папку где её запускает диспетчер, и запустите от туда.
-
Скрипт, создавший задачу, не правильно сгенерил команду.
Если вы не сами "ручками" писали команды диспетчеру,
а воспользовались готовой для этого утилитой ("менюшкой, окошком"), то команда правильная.
Либо это баг в диспетчере и он у всех, обращайтесь к разработчикам.
Возможно это ваш ТД прикрутил или просто подправил запускалку.
- Запустилось с ошибками. Результат другой.
-
Иногда приложения могут работать немного по разному через с GUI и без него.
Например Maya не запускает скрипты связанные с GUI,
а может где-то в них вы инициализируете нужную вам процедуру
(а ещё как-то в ней генерация mi фалов без GUI немного по-другому работала).
- Запустите эту команду на рендере.
- Не запускается.
- Убедитесь что на рендерах стоят те же программы что и у вас.
Лучше держать папку со всеми необходимыми программами где-нибудь на сервере.
Рабочие станции и рендера настроить так чтобы они, например, при загрузке синхронизировались с этой папкой.
Не надо устанавливать софт, его достаточно просто переписать.
- Запустилось с ошибками. Результат другой.
- Рендер имеет доступ до сцены и всех её ресурсов?
Лучше работать на удалённо на файловом сервере.
А сеть везде настроить так, чтобы у пользователя и у рендера была та же файловая система.
Тогда на любом компьютере одни и те же пути в проекте.
- Убедитесь что на рендерах стоят те же утилиты, скрипты, плагины что и у вас.
Всякие мелкие тулзы можно просто держать в общей папке на сервере.
А программы настроить так, чтобы они не локально что-то искали, а на этом сервере.
Тогда точно у всех всё будет одинаково.
- Зайдите удалённо на рендер пользователем, от имени которого работает там клиент диспетчера.
И снова запустите команду.
Под другим пользователем возможно другие пути и прочие переменные. Этот момент надо учитывать.
Может ещё вы что-то инициализируете во время логина и это работает только "под вами".
- Это последний рубеж. Далее, действительно можно сказать, что "виноват" диспетчер.
Как то он по-другому запускает команду, не как вы.
Но такое бывает очень редко и на очень нестандартных задачах.
Если вы не сами сгенерили задачу, а воспользовались готовым скриптом из вашего рабочего софта, то это врятли.
Но всё же. Узнайте как диспетчер запускает командную строку.
Например Афанасий в Linux и Mac "bash -c командна_с_аргументами", в MS Windows "cmd.exe /c командна_с_аргументами".
Т.е. запускает определённую оболочку и уже ей подаёт команду.
Думаю что так делают все диспетчеры.
(если вы не поняли о чём речь, то вы не должны были дойти до этого пункта, ищите ошибку раньше)
 |
|