COMMENT CREER UNE RENDERFARM OPEN SOURCE SOUS WINDOWS

 

         Introduction        


Pour les "CG artists" qui souhaitent gagner en productivité dans leurs créations vidéos, l'utilisation d'une ferme de rendu ou "renderfarm" est vivement recommandée. Une renderfarm c'est tout simplement des ordinateurs connectés en réseau pour vous aider à calculer vos séquences d'images (http://fr.wikipedia.org/wiki/Ferme_de_rendu).

Le titre de cet article est trompeur car une vraie renderfarm open source ne le sera complétement que si l'on utilise des logiciels open source sur un OS open source tel que Linux. Cependant, pour tous ceux qui ont encore besoin de travailler sur des applications propriétaires non compatibles Linux, tels que After Effect ou Cinéma4D, la solution Windows et/ou Mac est recommandée. Passée cette concession et en attendant de faire le grand saut sur Linux, on peut déjà s'aider de quelques solutions open source compatibles Windows dont Natron (compositing) et Afanasy (renderfarm manager).

Cet article est donc un petit retour sur expérience pour vous aider à monter et gérer une ferme de rendu sous Windows et installer Afanasy pour lancer et contrôler vos rendus sur votre renderfarm maison au travers du réseau.

renderfarm



         1. Configurer le réseau        


    Étape1: configuration du réseau physique    


Le matériel requis :
  1. un ordinateur principal que l'on nommera WORKSTATION.
  2. vos autres ordinateurs que l'on nommera CLIENTS.
  3. une "box" internet et un "switch" pour lier le tout par câble ethernet.

Tip : mieux vaut connecter la box au switch plutôt qu'utiliser le second port ethernet de votre
workstation (si vous en avez un). Ainsi, ils auront tous une adresse IP délivrée par la box et ce sera plus facile de les repérer sur le réseau et de les contrôler par internet. De plus, les mises à jours système seront disponibles.

Votre réseau devrait ressembler à ça :

réseau physique



     Étape2: configuration du réseau Windows     


   1. Activer la découverte du réseau   


Pour chaque ordinateur (workstation et clients) suivez ces étapes :
  1. Allez dans "Démarrer => Panneau de configuration => Centre réseau et partage => Modifier les paramètres de partage avancés".
  2. Activez la découverte du réseau et désactivez le partage protégé par mot de passe, à configurer pour le Réseau Public et Privé ("Résidentiel ou Professionnel")
découverte réseau
Vous pouvez maintenant voir vos autres ordinateurs par l'onglet réseau situé à gauche de l'explorateur.

Tip : il n'est pas nécessaire de créer de "jonction" au travers d'un "groupe résidentiel". Tout ce qui importe ici est la reconnaissance de vos ordinateurs connectés par le réseau. 

 

 

 

   2. Créer un dossier de travail   


Créez où vous le souhaitez un dossier de travail sur votre workstation. Ce dossier devra contenir tous les éléments du projet nécessaires à son calcul. Que ce soit pour Maya, After Effect, Nuke, Natron...etc, la logique reste la même : le chemin d'accès des fichiers doit être exactement le même pour tous vos ordinateurs. Ce dossier, que nous nommerons "WORK", contiendra donc :
  1. le fichier projet
  2. les références externes (fichiers, images, vidéos...)
  3. le dossier de sortie enregistrement (à configurer dans vos paramètres de rendus)

Ainsi quand votre "manager" de renderfarm distribuera un calcul à vos clients, ceux-ci utiliserons le même "chemin dossier" pour atteindre votre projet et rendront au même endroit les fichiers calculés. 
          
Tip : Par exemple, pour un projet Maya, ce sera le dossier projet avec toutes les textures, EXR, HDRI, références externes, proxies, caches... que vous utiliserez. Sauf exceptions les scripts et plugins nécessaires à la bonne exécution de vos applications devront être installés individuellement sur chaque ordinateur.

N'oubliez pas de paramétrer le partage de ce dossier :
  1. Clic Droit sur votre dossier WORK => Propriétés => onglet Partage => Partager...
  2. dans le menu déroulant sélectionnez "Tout le monde" puis "Ajouter
  3. sélectionnez "Lecture/écriture" puis "Partager"
partage dossier



   3. Connecter un lecteur réseau   


Une fois votre dossier "WORK" créé sur votre workstation il faut, pour chaque ordinateur (workstation et clients) suivre ces étapes :
  1. ouvrez l'explorateur Windows. 
  2. cliquez sur "Connecter un lecteur réseau" puis choisissez arbitrairement une lettre de lecteur, disons "X", et enfin sélectionnez le dossier "WORK". 
  3. laissez coché "Se reconnecter à l'ouverture de session".
création lecteur réseau


Un nouveau lecteur réseau vient d'apparaitre avec votre disque local (C:). Il doit s'appeler :

"nom-dossier (\\Host-Name) (lettre-choisie:)"


"Host-Name" étant le nom de votre ordinateur rentré par vos soins pendant l'installation de Windows (Si vous ne vous en souvenez pas allez dans Panneau de configuration => Système, il est écrit en bas à droite). Dans notre cas il s'agit de WORKSTATION-PC. Pour notre exemple nous obtenons donc ceci :

"WORK (\\WORKSTATION-PC) (X:)"

          
Répétez cette opération sur tous vos clients en prenant bien garde de choisir la même lettre (X dans notre exemple) ainsi que le même dossier (WORK, au travers du réseau par WORKSTATION).

icone lecteur réseau

Tous vos ordinateurs doivent avoir le même lecteur réseau avec le même nom ciblant vers le même dossier de travail. Vos ordinateurs sont donc maintenant configurés en renderfarm. Il ne reste plus qu'à installer sur chaque ordinateur les logiciels et plugins associés que vous utilisez, dans la mesure où ceux ci acceptent ce mode de traitement.




        2. Installer AFANASY sur Windows         



Vous pouvez maintenant travailler votre projet dans le dossier "WORK" et ensuite lancer votre rendu de séquence d'images manuellement, partie par partie, sur chaque client. Méthode bien fastidieuse... Pour faire cette tache ingrate, il existe de nombreux "managers" capables de soumettre, distribuer et organiser des rendus au travers de votre renderfarm. La plupart sont payants : Deadline, Royal Render, PipelineFX ...etc
...tandis que d'autres sont OPEN SOURCE, tel que AFANASY, qui fait partie du pack d'outils open source dédiés à la création graphique nommé CGRU (http://cgru.info/home) et disponible sur toutes les plateformes Windows, Mac et Linux.


 CGRU is a CG tools pack includes AFANASY - Free Open Source Render Farm Manager. Name "CGRU" - came from CG - Rules. It has two meanings: computer graphics principles and computer graphics is a cool thing. Name "Afanasy" - came from a Greek name meaning "immortal".


Actuellement Afanasy propose des "scripts de soumission" pour ces applications :

A quoi ressemble Afanasy :


Afanasy screenshot2

Afanasy screenshot3

 

 

   Etape 1 : installation du "serveur" (workstation)  


Le serveur  est l'ordinateur qui supervise la distribution automatique des taches aux autres ordinateurs, vos clients. Il est donc préférable de l'installer sur celui sur lequel vous travaillez, votre workstation :
  1. Téléchargez le dernier fichier d'installation CGRU pour MS windows ici : http://cgru.info/downloads
  2. Dé-zippez le dossier et copiez-collez le contenu (dossier "cgru-windows") directement à la racine de votre disque local, ce qui donne : C:\cgru-windows
Afanasy dossier

Voila, c'est installé ! Maintenant, il faut lui préciser au moins deux choses :
  • qui est le serveur (quel est son IP). 
  • où trouver les fichiers .EXE de vos logiciels. 

Pour cela, il existe un petit logiciel "embarqué" dans le dossier que vous venez de télécharger qui s'appelle "KEEPER". Pour le lancer, allez dans votre dossier "cgru-windows" et double-cliquez sur le fichier "start.cmd". En quelques secondes, vous verrez Keeper apparaitre en bas à droite avec vos icônes de notification. Faites un clic droit dessus pour accéder à ses options.

Keeper interface
  1. Clic Droit => Afanasy => Set server...
  2. indiquez l'adresse IP de votre workstation (pour la connaitre allez dans Démarrer => tapez "CMD" dans la zone de recherche puis "entrée" => dans la fenêtre de console tapez "ipconfig" puis "entrée", votre IP apparait à la 8ème ligne devant "Adresse IPv4......." ).
  3. De nouveau Clic Droit => Software => Setup Soft => sélectionnez celui qui vous concerne (Maya, Blender...) puis indiquez le chemin vers son exécutable (.exe). 
set server

Tip: indiquez votre IP plutôt que votre nom d'ordinateur (host-name). Personnellement, pour une raison qui m'échappe, ça n'a fonctionné qu'avec l'IP. 

Et voila! Rien de plus à faire de ce coté. Maintenant, pour lancer le serveur, il faut accéder aux fichiers exécutables et pour cela il y a deux options :
  • allez dans  C:\cgru-windows\start\AFANASY\
  • ou sur Keeper faites Clic Droit => Afanasy => [ browse ]
Vous y trouverez toutes les applications nécessaires au déploiement d'AFANASY dont :
  • _afserver.cmd : sert à lancer le serveur sur votre workstation.
  • _afstarter.cmd : sert à lancer un travail sur votre renderfarm.
  • afwatch.cmd : sert à manager vos rendus en cours ("Jobs"), vos clients ("Renders") ainsi que les utilisateurs ("Users").
  • render.cmd : sert à lancer le "RENDER" sur vos ordinateurs, notamment sur la workstation.
Afanasy commandes
Suivez ces étapes :
  1. Exécutez "_afserver.cmd" : une invite de commande s'ouvrira en terminant par "Listening 51000 port...". C'est le port utilisé par défaut qui servira au serveur à communiquer avec ses clients.
  2. Exécutez "afwatch.cmd" ou sur Keeper faites un "Clic Droit => Afanasy => Start Watch...". Une fenêtre s'ouvrira où vous pourrez voir si dans l'onglet "Renders" apparait le nom de votre workstation. Dans mon exemple, apparait donc "workstation-pc" et afwatch me dit qu'il est "Offline". C'est normal, je n'ai pas encore lancé le "render". Le serveur communique mais ne calcule rien, il me faut donc lancer le "render" sur ma workstation pour la faire apparaitre comme unité potentielle de calcul dans afwatch.
  3. Exécutez "render.cmd" ou sur Keeper faites "Clic Droit => Afanasy => Local Render..."

 Voici ce que vous devez voir apparaitre :
  • afwatch lancé tout seul
afwatch interface1
  • _afserveur
afserver interface
  • afwatch une fois le serveur lancé
afwatch interface2

  • une fois le serveur ET le render lancés

afwatch interface3


Votre serveur est maintenant configuré et votre workstation est prête à rendre n'importe quel job. Avant de passer aux clients, faites un test de rendu en exécutant "_afstarter.cmd" (n'oubliez pas avant de bien paramétrer le chemin des exécutables de vos logiciels) ou en utilisant les scripts de soumission qui vous permettent d'envoyer vos jobs directement depuis votre application.



   Etape2 : installation des "renders"  (clients)  


Le render est celui qui lance le calcul des taches vers vos exécutables. Vous pouvez le démarrer à la fois sur vos clients et votre workstation.

Pour l'installer sur vos clients, suivez les mêmes étapes que sur votre workstation (attention à l'étape n°4) :
  1. copiez-collez le dossier "cgru-windows" directement à la racine de votre disque local (C:\cgru-windows). 
  2. dans "cgru-windows" double-cliquez sur "start.cmd". 
  3. sur Keeper faites: Clic Droit => Afanasy => Set server... 
  4. INDIQUEZ L'ADRESSE IP DE VOTRE WORKSTATION !!!
  5. De nouveau sur Keeper: Clic Droit => Software => Setup Soft => sélectionnez celui qui vous concerne puis indiquez le chemin vers son exécutable
  6. allez dans  C:\cgru-windows\start\AFANASY\ et exécutez "render.cmd" ou sur Keeper faites "Clic Droit => Afanasy => Local Render...".

Vérifiez qu'à la fin de la fenêtre de commande du "render" apparaisse bien "Render registered". C'est très important, cela veut dire que votre client vient d'être repéré par votre serveur. Pour le confirmer allez voir sur votre workstation l' afwatch; votre nouveau client devrait apparaitre dans l'onglet "Renders".

render interface

Votre client est maintenant configuré et votre workstation est prête à lui envoyer n'importe quel job. Répétez cette opération sur autant de clients que vous le souhaitez. Puis envoyez vos Jobs en exécutant "_afstarter.cmd" depuis votre workstation ou en utilisant les sripts de soumission.

afwatch interface4

Tip : vous n'êtes maintenant plus obligé de passer par Keeper. Accédez aux exécutables d'Afanasy en créant des raccourcis sur votre bureau: Clic Droit => Envoyer vers => Bureau (raccourcis). Pratique pour lancer rapidement le render sur vos clients.


Si vous rencontrez des soucis particuliers vous pouvez toujours vous reporter au manuel d'utilisation en ligne http://cgru.info/home et si vous n'arrivez toujours pas vous pouvez aussi poser vos questions sur le forum dédié http://rules.cgru.info/#/Ask_Questions_Here.



   Etape 3 : lancer un "Job"    


Procédez comme suit :
  1. sur votre workstation lancez _afsever.cmd puis render.cmd puis afwatch.cmd
  2. sur vos clients lancez  render.cmd 
  3. de nouveau sur votre workstation lancez afstarter.cmd
afstarter interface

       4. Indiquez au moins ces éléments :
  • File : sélectionnez le fichier projet (.mb, .ma, .aep, .ntp, .c4d, .nk ...etc).
  • Frames : indiquez votre "frame range" (de l'image 1 à l'image ...).
  • FPT : "Frames Per Task" ou le nombre d'images calculées par "tache" envoyée aux renders. Si vous laissez 1 cela signifie qu'il y aura autant de taches que d'images à calculer. Sachant que chaque client devra charger tout le projet à chaque tache il vaut mieux augmenter ce paramètre au moins jusqu'à 10 (en fait cela dépend: si votre projet pèse lourd il vaut mieux réduire ce paramètre pour éviter les trop gros plantages. Si non et que vous avez beaucoup d'images vous pouvez augmentez ce paramètre comme il vous plaira). 

Cliquez sur "Refresh" pour voir le code équivalent envoyé au serveur puis "Start" pour commencer le Job.

Tip : une fois l'afwatch lancé tapez IDDQD pour passer en mode "Super Utilisateur". Ne l'écrivez pas dans les zones de recherche, tapez le "dans le vide" après avoir sélectionné la fenêtre. L'afwatch doit passer en vert. Vous aurez ainsi accès à l'intégralité des options disponibles en faisant un clic droit sur vos Jobs, Renders et Users

mode super utilisateur

Vous pouvez également utiliser votre navigateur internet à la place de l'afwatch :
  • sur Keeper => Clic Droit => AFANASY => Web GUI
  • ou entrez dans la barre d'adresse => votre adresse IP:51000
De préférence utilisez Firefox et son module CGRU : http://cgru.info/firefox/cgru-addon.xpi


Afanasy firefox2




        3. Astuces et outils :         


   Contrôle par internet   


Maintenant que tout est paramétré, il vous faut mettre en place un moyen simple d'accéder à vos clients depuis votre workstation pour vérifier ce qu'il s'y passe.

Pour l'instant, la solution la plus simple que j'ai trouvée, non open source mais FREE, est d'utiliser le logiciel "Teamviewer". Il vous permet d'accéder à distance par internet à vos ordinateurs depuis votre workstation, ainsi que votre smartphone (très pratique pour partir du bureau en toute confiance sachant qu'on pourra relancer des calculs en cas d'erreur depuis n'importe où).

Très facile d'utilisation, il vous suffit de télécharger et d'installer le logiciel sur tous vos ordinateurs puis de créer un compte FREE et d'insérer votre nom d'admin et mot de passe créés sur chacun afin de les lier au même compte. Et voila ! Vous pouvez ouvrir sur votre workstation autant de fenêtres Teamviewer que vous avez de clients.

teamviewer interface



   Tips suplémentaires    


  • Désactivez l'installation automatique des mises à jours pour éviter que vos ordinateurs ne s'éteignent en plein milieu d'un rendu.
  • Coupez la mise hors tension automatique de votre ordinateur. Démarrer => Panneau de configuration => Options d'alimentation ...etc.
  • Dans un souci d' économie d'énergie, certains modèles de carte mère font de même avec votre carte réseau. Le problème est qu'ensuite cela crée des coupures de connexion réseau qui interrompent vos rendus. Très embêtant. Pour y remédier allez dans : Démarrer => Panneau de configuration => Centre réseau et partage => Modifier les paramètres de la carte => Clic Droit sur votre connexion => Propriétés => Configurer => Gestion de l'alimentation. Parfois, cela ne suffit pas, il faut dans ce cas aller dans le BIOS de votre ordinateur pour désactiver cette option. 
  • Vérifiez que dans vos paramètres de pare-feu Windows aucun des logiciels que vous souhaitez lancer en rendu réseau ne soit bloqué. Démarrer => Panneau de configuration => Pare feu Windows => Paramètres avancés => Règles de trafic entrant et sortant
  • Pour gagner du temps, enlevez la protection de compte utilisateur par mot de passe. Démarrer => Panneau de configuration => Comptes d'utilisateurs



   Reconnaissance lecteur réseau   


Sous Windows 7, la reconnaissance automatique des lecteurs réseau au démarrage ne se fait pas automatiquement. Pour l'y aider, il y a une solution simple :
  1. ouvrez le Bloc-notes
  2. tapez: "explorer X:\" (sans les guillemets, et à la place de X, votre lettre choisie comme lecteur réseau partagé)
  3. enregistrez le fichier avec le nom qu'il vous plaira. Par exemple, "ouverture_lecteur_reseau_X" et changez manuellement son extension en ".bat". Avant cela, vérifiez bien que vos options d'affichage vous permettent de voir vos extensions de fichier. Pour cela, dans l'explorateur Windows cliquez sur "Organiser => Options des dossier et de recherche => onglet Affichage => décochez Masquer les extensions des fichiers dont le type est connu".
  4. collez ce fichier dans votre dossier de démarrage : Démarrer => Tous les programmes => Clic Droit sur Démarrage => Ouvrir tous les utilisateurs. Vous pouvez coller ici tous les raccourcis des programmes que vous souhaitez voir s'exécuter automatiquement au démarrage.
fichier .bat



   Lecture séquence d'images   


Une fois votre séquence d'images calculée par votre renderfarm, il vous faut vérifier qu'il ne manque rien et que le rendu est celui auquel vous vous attendiez. Et donc, plutôt que de créer une vidéo sur After Effect à partir de la séquence d'image (c'est-à-dire ouvrir AE, importer séquence d'image, créer composition, faire un rendu vidéo...etc) pour pré-visualiser votre rendu rapidement, il existe un soft open source très pratique qui vous permet de lancer directement en vidéo une séquence d'images : DJV_VIEW

djv view interface


Installez djv_view puis sélectionnez une image de votre suite d'image (pas forcément la première) et faites :
Clic Droit => ouvrir avec => djv_view


        FIN         


Voila c'est terminé. Si vous avez des remarques ou si certains points manquent de précision, merci de me les signaler. Je continuerai de mettre à jour cet article au fur et à mesure de vos commentaires et de mes expériences.

JR
creature-studio

4 commentaires:

  1. Bonjour Jonathan,

    Merci pour cet article très intéressant, qui permet notamment de découvrir Afanasy que je ne connaissais pas !
    Utilisateur de 3dsmax depuis bientôt 15 ans et responsable du service 3d d'une agence spécialisée dans le retail (architecture commerciale), je fais une utilisation intensive du rendu partagé, que ce soit simplement le DR de VRay ou BackBurner, voire les 2 combinés. Bref ... une question sur un point qui me gêne dans le setup que vous décrivez: en section 2.Créez un dossier travail, le dossier "Work" est sur la station de travail, incluant les références externes. Est-il possible de ne pas centraliser les éléments de cette façon ? ici, nous centralisons toutes les ressources dans différents dossiers sur notre serveur (les maps, les XRefs, les proxies ...), les fichiers 3dsmax sont eux aussi stockés sur le serveur. A défaut, une telle contrainte n'est pas vraiment envisageable de notre côté ...
    Merci pour toutes les précisions que vous pourriez m'apporter.

    Cordialement.

    RépondreSupprimer
    Réponses
    1. Oui bien sur il n'y a aucun problème à utiliser un autre ordi que sa workstation pour centraliser les ressources, ou plusieurs dossiers sources situés sur plusieurs ordinateurs. Tout ce qui importe c'est qu'ils soient accessibles (visibles et partagés) par tous vos clients via le réseau (ce doit déjà être le cas si vous utilisez le DR et BackBurner).
      Le setup décrit dans l'article est le plus simple possible pour aider à bien comprendre la logique ;)

      Supprimer
  2. Bonsoir, nous essayons de terminer le tutorial mais le rendu ne veut pas fonctionner.

    j'ai une question avant de commencer.. Dans 3dsmax, j'ai réussi à obtenir la fenêtre "render by afanasy" en rentrant les scripts du dossier "plugin" dans max.

    cette fenêtre de max fait-elle double emploi avec le "submit job" d'afanasy?

    j'obtiens des messages d'erreur comme "parser bad result" savez vous d'ou cela peut venir?
    merci





    RépondreSupprimer
    Réponses
    1. Je n'utilise pas 3DS mais oui pour lancer vos rendus vous pouvez utilisez soit les plugins intégrés soit le "submit job". Je rencontre d'ailleurs moins de problèmes en utilisant la seconde méthode.
      Concernant les messages d'erreur le mieux est de chercher sur le GitHub du développeur d'Afanasy : https://github.com/CGRU/cgru/issues. Vous pouvez aussi poser vos questions directement les réponses ne se font généralement pas tarder. Votre cas a d'ailleurs déjà été mentionné : https://github.com/CGRU/cgru/issues?utf8=%E2%9C%93&q=parser+bad+result.

      Supprimer