Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/10/2010, à 22:23

Sir Godefroy

Cluster de calcul sous Kubuntu.

Bonjour,

J'ai pour projet de créer un cluster de calcul sous Kubuntu pour la création et le rendu avec Blender (3D).
Mon choix s'est arrêté sur Kerrighed qui me parait être adapté à mon projet.
Mon problème est que je pars de zéro, je n'ai aucune notion en clustering.
Je ne sais ni comment mettre en place mon cluster ni de quel matériel j'ai besoin.
Je dispose pour l'instant de quelques PC et de câbles Ethernet.
J'ai donc besoin de votre savoir pour me guider si ça ne vous dérange pas trop smile.

Merci

Hors ligne

#2 Le 09/10/2010, à 10:33

boutor

Re : Cluster de calcul sous Kubuntu.

Je te conseillerais d'utiliser un OS dédié cluster, comme rocks cluster basé sur CentOS.
Si tu n'as pas de notions, ce sera beaucoup plus facile!

Hors ligne

#3 Le 09/10/2010, à 11:43

avelldiroll

Re : Cluster de calcul sous Kubuntu.

Le clustering est un vaste de domaine qui regroupe énormément d'applications. Et pour chacune de ces applications, il existes des solutions plus ou moins adaptées.

Dans un premier temps, on ne base pas son cahier des charges sur la distribution que l'on va utiliser, mais sur l'applicatif (ici le moteur de rendu) et sur les moyens matériels à disposition, le choix de la distribution est secondaire.

Donc il faut commencer par se renseigner sur les différents moteurs de rendu de de Blender, afin de savoir comment ils sont parallélisés (mpi, threading, gestion interne de processus multiples, ...), ainsi que leur demande en ressources (réseau en priorité). La plupart des moteurs de rendu sont capables de découper eux même leurs tâches en plusieurs processus, et ceux-ci peuvent tourner de manière à peu près indépendante, ce qui impose une faible charge sur le réseau.

Ensuite parlons du matériel, comment sont reliés les différentes machines ? (un switch gigabit performant est souvent indispensable à la mise en place d'un cluster ... voir des solutions plus rapides et plus onéreuses (10GE, infiniband ...)) les machines sont elles dédiées au cluster, ou sont elles workstations de jours / cluster la nuit ? Les machines sont elles identiques ? (le load balancing peut vite devenir cauchemardesque sur un cluster hétérogène).

Enfin, parlons de l'utilisation pratique du cluster : combien d'utilisateur concurrents ? combien de rendering lancé simultanément ? A-t-on besoin d'une gestion avancée des tâches ? (possibilité de rendre un rendu prioritaire par rapport à un autre ...).

C'est seulement une fois que toutes ces questions auront été répondues que l'on pourra s'orienter vers telle ou telle solution de clustering.

En attendant, voici quelques pistes et sources d'informations (comme tous domaines techniques en informatique, les ressources principales sont en anglais):

* Le calcul distribué:
http://en.wikipedia.org/wiki/Distributed_computing
http://en.wikipedia.org/wiki/Parallel_computing
http://en.wikipedia.org/wiki/High-performance_computing
http://en.wikipedia.org/wiki/Single-system_image  <-- c'est le modèle de kerrighed

* Kerrighed + ubuntu solution très souple, mais que je déconseillerais au néophyte à moins d'avoir du temps pour se former:
https://wiki.ubuntu.com/EasyUbuntuClust … usterGuide
http://www.kerrighed.org/wiki/index.php/UserDoc
http://www.debianadmin.com/how-to-set-u … dated.html

* Solutions de clustering "tout en un", souvent plus faciles à aborder pour le néophyte:
http://www.rocksclusters.org
http://svn.oscar.openclustergroup.org/trac/oscar
http://idea.uab.es/mcreel/ParallelKnoppix/
http://kestrelhpc.sourceforge.net/

* Blender arrive avec ses solutions spécifiques de distribution de calcul, moins souples et probablement moins performantes mais probablement plus simple à mettre en place si on ne connias rien au calcul distribué:
http://doc.ubuntu-fr.org/blender?#impro … _animation
http://stuvel.eu/multiblend
http://farmerjoe.info/
http://www.drqueue.org/cwebsite/

* Dans le cas d'une solution ubuntu + kerrighed, outre le nfs et le pxe boot que décrivent la doc, tu auras probablement besoin d'un scheduler plus efficace que "at" et "batch":
http://www.clusterresources.com/product … anager.php
http://gridengine.sunsource.net/
le 3e grand acteur de ce marché est LFS, que je ne link pas car propriétaire et n'apporte rien de plus que les deux autres ...
https://computing.llnl.gov/linux/slurm/ qui à récemment fait sont apparitions dans les dépôts.

Bonne continuation

Dernière modification par avelldiroll (Le 09/10/2010, à 14:02)


"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#4 Le 09/10/2010, à 13:16

boutor

Re : Cluster de calcul sous Kubuntu.

Il te faut un switch, pour relier tes noeuds aux maîtres et permettre les communications.
Ou alors il te faut deux cartes réseaux par machines et les monter en anneaux en forçant les communications dans un seul sens.

Hors ligne

#5 Le 09/10/2010, à 14:58

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

Tout d'abord, merci pour vos réponses.
J'ai lu la documentation d'avelldiroll et je penses pourvoir répondre aux questions smile.
J'utilise (pour le moment) le moteur de rendu interne de Blender qui découpe le processus de rendu en threads en fonction du nombre de processeurs (d'après ce que j'ai compris).
Les machines seront reliées par des câbles Ethernet RJ45 et pour ce qui est du switch (que je ne possède pas encore) est-ce que celui-ci ferait l'affaire : http://www.netgear.fr/produits/produit. … d=JGS524v2 ?
Les machines seront dédiées au cluster (pourrai-je modéliser sur le cluster ou faudra-t-il une autre machine ?).
Les machines sont malheureusement différentes (sauf 2) sad.
Je serai le seul à utiliser mon cluster tongue.
Je me contenterai d'un seul rendu à la fois (ce qui est déja très bien).
Et enfin la gestion avancée sera donc inutile.

Maintenant que j'ai tous ces précieux renseignements j'ai besoin de votre aide pour choisir la solution de clustering smile.

Merci encore

Dernière modification par Sir Godefroy (Le 09/10/2010, à 14:59)

Hors ligne

#6 Le 09/10/2010, à 18:44

boutor

Re : Cluster de calcul sous Kubuntu.

Tu pourras modéliser sur ton cluster. Soit sur le noeud maître s'il est assez costaud; Soit sur un noeud dédié ou un noeud de login. Mais en général, on a ça sur des gros clusters. Qu'as-tu comme machine?

Le switch que tu montres fait l'affaire.
La machine qui aura le partage NFS devrait avoir sa connection réseau en bonding pour augmenter le débit d'écriture sur le partage. De même il faut y mettre des disques durs en RAID 0 ou 5 pour la performance d'écriture.

Auras-tu des cartes graphiques sur les noeuds?

Hors ligne

#7 Le 09/10/2010, à 19:40

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

Les machines qui composerons le cluster sont vielles et on une faible puissance sauf ma machine maître qui sera mon ordinateur actuel.
Mes nœuds aurons des cartes graphiques smile.
Mon cluster pourras-t-il être connecté à internet (même si ce n'est pas ma priorité) ?

Hors ligne

#8 Le 09/10/2010, à 22:16

boutor

Re : Cluster de calcul sous Kubuntu.

Un cluster se connecte sur internet via une seconde (ou troisième...) carte réseau.
Avec de vieilles machines ton cluster risque de consommer beaucoup, pour de faible gains.

Il serait mieux de retirer les carte graphiques pour consommer moins sur les noeuds, il faut alors mettre Halt on no error (ou un truc qui ressemble) dans le bios.

Hors ligne

#9 Le 10/10/2010, à 12:36

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

D'accord mais le fait de retirer les cartes graphiques des nœuds n'atténuera-t-il pas la performance de rendu ?
Et comment réduire la consommation électrique du cluster tout en gardant une puissance optimale ?
Ne serait il pas possible d'alimenter plusieurs nœuds avec un seul bloc d'alimentation ?
Et donc si j'ai du temps pour mettre en place mon cluster est-ce que Kerrighed conviendra ?
(Désolé, je pose beaucoup de questions   smile)

Hors ligne

#10 Le 10/10/2010, à 13:36

boutor

Re : Cluster de calcul sous Kubuntu.

Alors, pour le rendu, je ne sais pas.
Moi je fais des calculs où je n'utilise que la puissance des processeurs (calculs elements finis).
Pour du rendu vidéo, je n'en sais rien. C'est à toi de voir.
Pour Kerrighed, pas d'avis... Jamais utilisé. Mais apparemment, ce n'est pas le plus simple.

Tu peux alimenter plusieurs noeuds avec un même bloc d'alim, c'est ce qui est fait dans les clusters en général (une alim pour deux cartes mères).
Mais tu ne gagneras que la consommation propre du bloc d'alim. Si les CG ne servent pas, mieux vaut les retirer. A moins de se servir du GPU (carte mère récente), je ne vois pas comment elles peuvent intervenir dans un calcul en batch. Mais de ce point de vue, je ne suis pas un spécialiste.

Hors ligne

#11 Le 10/10/2010, à 18:34

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

Je vais réfléchir pour ce qui est des cartes graphiques des nœuds.
Pour brancher deux cartes mères sur un seul bloc d'alimentation faut-il le "bidouiller" ou existe-t-il des bloc d'alimentations spéciaux ?
Et aussi je me demandait si tout les nœuds pouvait booter en même temps ? (même si c'est une question idiote puisque je m'imagine mal un administrateur de cluster allumer ces 100 nœuds un par un   smile)

Hors ligne

#12 Le 10/10/2010, à 19:14

boutor

Re : Cluster de calcul sous Kubuntu.

Sur les gros clusters, il y a des actionneurs qui appuie physiquement sur le bouton de démarrage de la machine. Cet actionneur est commandé  travers le réseau. C'est des montages un peu spéciaux. Ce sont les noeuds maîtres qui les gère.

Pour ce qui est de l'alim, je ne sais pas. Je n'ai jamais ouvert les racks (question de garantie).
Les noeuds bootent à travers le réseau, soit le maître hiérarchise, soit il prend tout de front, je ne sais pas. De toute manière le noyau à envoyer aux noeuds ne fait guère plus de 2 Mo si tu l'as réduit au minimum (et donc obtenir le plus de perf).

Hors ligne

#13 Le 10/10/2010, à 20:51

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

Donc si je comprend bien, il faudra que je démarre chacun de mes nœuds à la main ?
Pour les blocs d'alimentation, j'en laisserai un par carte mère pour faire simple (mais pas économique).
De toute façons, mon cluster ne comportera pas plus d'une vingtaine de nœuds.
Pour ce qui est de l'installation de Kerrighed, je penses suivre (enfin essayer de suivre) les explications de cette page : https://wiki.ubuntu.com/EasyUbuntuClust … usterGuide .

Hors ligne

#14 Le 10/10/2010, à 22:53

boutor

Re : Cluster de calcul sous Kubuntu.

Pour l'allumage des noeuds, il faudrait voir si un Wake On Lan est possible. Il suffira donc d'avoir un fichier bash pour allumer les noeuds depuis le maître.
Ca doit être possible.

Hors ligne

#15 Le 10/10/2010, à 23:02

avelldiroll

Re : Cluster de calcul sous Kubuntu.

Dans le désordre:

@boutor:
Des token rings, ça fait un bout de temps que j'en ai pas vu ... à part dans les centrales nucléaires.
Beaucoup de clusters ont des alims redondées, donc 2 alims par carte mère (le plus souvent des quadriprocs).
L'absence de carte graphique peut poser des problème (et une carte graphique non-utilisée ne tire pas beaucoup de jus ... par exemple je ne sais pas si les moteurs de rendu que Godefroy veut faire tourner on besoin d'avoir blender lancé sur chaque nœud, et si c'est le cas blender aura probablement besoin d'un X, et X aura besoin ... bref il faut penser à optimiser ce genre de choses une fois que l'on a quelque chose de fonctionnel et que l'on maitrise l'intégralité de l'environnement de travail.

@Sir Godefroy:
C'est bien un switch GiB que tu veux prendre, pas besoin d'un managed, donc celui que tu cites correspond à la gamme (pas besoin d'un 24 ports par contre) ... par contre je ne suis pas un grand fan de netgear (cisco, hp même dell font de meilleurs produits (àmha)). N'oublie pas qu'un switch GiB est inutile si les ordis composant le cluster ne sont pas équipé de carte ethernet 10/100/1000. Et que tu te simplifiera la vie si ton maître (l'ordi principal qui gère les nœuds) possède 2 cartes ethernet, une pour le lan du cluster, un autre pour ton lan/ta connection internet.
Pour allumer, les nœuds ... le WakeOnLan ça existe ...

Maintenant pour revenir au cœur du problème, aka quelle solution choisir:
Je te conseillerais de regarder de près les solutions telles que multiblend ou farmerjoe (j'ai mis les liens dans mon premier poste), car ca répond à ta problématique et c'est plus du distributed batching que du réel clustering, ce sera donc beaucoup plus simple à mettre en place (configurer chaque machine et installer la solution pour faire bosser les "nœuds").
A priori, les moteurs de rendu ne font pas appel (par défaut) à mpi pour distribuer le code entre process (c'est en général du découpage de scène et les nœuds n'ont alors pas forcément besoin de communiquer pendant le calcul) donc les solutions intégrant mpi représenteraient beaucoup de surcharge et d'apprentissage pour peu de gain fonctionnel, je déconseille donc des solutions telles que Rocks ou pelican ...
Reste le SSI avec Kerrighed, qu'il faudrait bencher pour voir si tu atteints les mêmes performances qu'avec multiblend ou farmerjoe et qui nécessitera de ta part un véritable effort d'auto-formation ("je pars de zéro, je n'ai aucune notion en clustering"). Ce n'est pas difficile de se former sur ce genre de technologie, mais suivant ton niveau en administration système en général, cela peut demander du temps. On ne peut pas non plus te donner un tuto à suivre pas à pas, car ça dépend énormément du matériel à ta disposition.

Mes 2 centimes ... Bonne continuation


"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#16 Le 12/10/2010, à 16:23

Sir Godefroy

Re : Cluster de calcul sous Kubuntu.

Je m'était mis en tête de tester la "combinaison" Kubuntu+Kerrighed sur deux ordinateurs avant de l'installer sur tout mon futur cluster alors j'ai suivi les explications de cette page : https://wiki.ubuntu.com/EasyUbuntuClust … usterGuide et je suis arrivé jusqu'au moment où il faut tester le réseau sans Kerrighed.
Jusque là tout c'était bien passé mais lorsque j'ai démarré mon nœud, (qui était relié au maitre par un simple câble Ethernet) j'ai obtenu le message suivant :
"PXE-E51 : NO DHCP or proxyDHCP offers were receivd.
PXE-M0F : EXITING PXE ROM.".

Cela vient-il du fait que les deux ordinateurs n'était pas reliés par un switch ?
Ou alors me serai-je trompé quelque part ?
Mais où ?

PS : j'ai recommencé le tutoriel deux fois, la première rien ne s'affichait sur l'écran de mon nœud, la seconde j'avais ce message d'erreur.

Hors ligne