====== Créer un cluster Condor ====== * Objet : Mettre en cluster avec Condor * Niveau requis : FIXME {{tag>débutant avisé}} ===== Introduction ===== Condor est un programme disponible dans les dépots Debian permettant la mise en cluster d'ordinateur. Il permet, moyennant la création d'un fichier de description, de distribuer des taches à travers divers ordinateurs de manière automatique. ===== Installation ===== Il faut installer Condor sur touteles machines concernées : apt-get -y install htcondor Ne pas effectuer de configuration automatique! Je n'ai rien obtenu de valable avec. Si vous avez effectué une configuration automatique : apt-get -y purge htcondor && apt-get -y install htcondor Extrême, mais cela a le mérite d'être clair! ===== Paramètrage ===== Ici, nous allons paramètrer les ordinateurs du cluster de telle manière qu'un d'entre eux soumette du travail et que les autres executent. Celui qui soumet est appelé serveur de batch, les autres sont des noeud de travail (work node). Il est tout a fait possible d'avoir un cluster composé de noeuds qui peuvent, à la fois soumettre du boulot et en recevoir. Il suffit d'adapter les daemons chargés en modifiant les fichiers de configurations. Aussi, Condor peut fonctionner sur une seule machine. cela n'a pas beaucoup d'interet, mais permet de faire vos premiers essais. Dans ce cas de figure, tou les daemons sont chargés. Avant de modifier les fichiers de configuration : service condor stop Une fois les modifications terminées : service condor start commencer par redémarrer le serveur de batch! Il faut modifier le fichier condor_config des noeuds de travail pour qu'ils disposent tous de ces lignes : nano /etc/condor/condor_config # daemon d'une work_node DAEMON_LIST = STARTD, MASTER # quantité de mémoire que condor ne devra pas utiliser RESERVED_MEMORY = # IP du serveur de batch CONDOR_HOST = 192.168.XX.XX # Permettre à toute les machines du réseau local de soumettre des taches : 192.* ALLOW_WRITE = $(CONDOR_HOST) $(IP_ADDRESS) 192.* # Permettre à toute les machines du réseau locale d'être gestionnaire : 192.* ALLOW_NEGOTIATOR = $(CONDOR_HOST) $(IP_ADDRESS) 192.* De la même manière, il faut modifier les même lignes du condor_config du serveur de batch : nano /etc/condor/condor_config # daemon du serveur de batch DAEMON_LIST = COLLECTOR, NEGOTIATOR, SCHEDD, MASTER # pas indispensable dans un réseau domestique # peut etre davantage si vous avez beaucoup de machine RESERVED_MEMORY = # IP du serveur de batch (cette machine) CONDOR_HOST = 192.168.XX.XX # Permettre à toute les machines du réseau local de soumettre des taches : 192.* ALLOW_WRITE = $(CONDOR_HOST) $(IP_ADDRESS) 192.* # Etant donnéque cette machine est le gestionnaire central : 127.* ALLOW_NEGOTIATOR = $(CONDOR_HOST) $(IP_ADDRESS) 127.* ===== Les commandes à connaitre ===== Il y en a beaucoup d'autre, mais celle-la suffisent. exécuter une tache : condor_submit /mon/fichier/description.des afficher la fil d'attente : condor_q Retirer de la queue toute les taches lancées par un utilisateur : condor_rm utilisateur Permet de voir les work_node du cluster avec détails(arch, OpSys) : condor_status Permet de voir tout les daemons actifs sur les machines du cluster : condor_status -any affiche les work_node disponibles (celles qui ne taf pas) : condor_status -avail ===== Exemple de fichier de description ===== Les fichiers de description sont destiné à etre utilisé avec la commande condor_submit. Cet exemple permet d'executer un script bash "tache_1.exe"(rien a voir avec windaube, exe en réference à la ligne executable du fichier) 5 fois en utilisant toute les machines disponible sous linux d'architecture X86_64, armv6l et armv7l en faisant usage d'un fichier 'fichier.nécéssaire. output, error, et log fournissent des informations utiles concernant l'execution de votre tache. Si vous êtes débutant, commencer par l'univers vanilla (le plus simple). universe = vanilla initialdir = /home/$USER/Documents/Informatique/Condor/ executable = /home/$USER/Documents/Informatique/Condor/tache_1.exe input = /home/$USER/Documents/Informatique/Condor/fichier.nécéssaire requirements = (Arch == "X86_64" && OpSys == "LINUX") || (Arch == "armv6l" && OpSys == "LINUX") || (Arch == "armv7l" && OpSys == "LINUX") output = /home/$USER/Documents/Informatique/Condor/tache_1.out error = /home/$USER/Documents/Informatique/Condor/tache_1.err log = /home/$USER/Documents/Informatique/Condor/tache_1.log Queue 5 Voici une tache ultra basique. Elle execute **1 fois** dans l'univers **vanilla** le script **tache_2.exe** situé dans votre **repertoire personnel** en utilisant **une machine disponible** d'architecture et system d'exploitation **identique à votre serveur de batch**. pas de log, ni de message d'erreur : juste la tache. executable = tache_2.exe queue