Parallèlisme, Clustering


Les différents types de clustering sous Linux :
- clustering pour applications scientifiques, qui nécessite des logiciels de clustering, tels que ceux du projet Beowulf, ainsi que des applications spécifiquement programmées pour tirer partie de l'environnement distribué.
- front-end clustering, qui permet par exemple de diriger des réquetes HTTP vers plusieurs serveurs web, permettant ainsi une tolérance aux pannes, un équilibrage de charge. Exemple, le projet Linux Virtual Server
produits : Understudy (Polyserve), TurboCluster (TurboLinux)

- back-end clustering, qui offre a plusieurs serveurs l'accés a une ressource unique, par exemple une grosse base de données. Si un des serveur crash, les autres sont toujours la pour assurer la continuité de service.

Concepts

Articles Sociétés


Projets

Chercheurs
Roy Friedman

Beowulf

Les FAQ de Beowulf (copie locale)

PVM (Parallel Virtual Machine)

J'ai parallèlisé un calcul de bootstrap sur un cluster de 7 stations sous LINUX (et une sous IRIX). Les sources sont disponibles ici.

INSTALLATION DE PVM
- Telecharger pvm a l'adresse  http://www.netlib.org/pvm3/index.html.
- decompresser avec tar xvfz
- placer :
PVM_ROOT=$HOME/pvm3
PVM_ARCH=LINUX
PATH=$PATH:$PVM_ROOT/lib
export PVM_ROOT PVM_ARCH PATH
dans le fichier .bashrc
- source .bashrc
- compiler avec make

rsh doit être autorisé sur toutes les machines (vérifier dans inetd.conf). Il faut placer un fichier .rhosts dans chacun des $HOME de l'utilisateur, contenant le nom des machines "trustées" et le login sur ces machines. Ex :
sun olly
moon olly
Pour tester effectuer un simple rsh de la commande ls : rsh moon ls.
 
 

UTILISATION (Unix)

pvm lance le demon pvmd. Ensuite il est possible de :
- ajouter une machine : add moon
- enlever une machine : delete moon
- statut : conf

UTILISATION (win32)
- intaller rshd95 sur les machine sous Win
- ajouter une machine : ilfaut spécifier le chemin vers le demon pvm3 et vers les programmes PVM
Ex :
pvm> add "machine_win dx=c:\pvm3\lib\WIN32\pvmd3.exe ep=c:\pvm3\bin\WIN32"
ou bien
pvm> add machine_win avec la variable d'environnement suivante (exemple) PVM_DPATH=c:\progra~1\pvm3.4\lib\win32\pvmd3.exe
wd permet de spécifier un rep de travail pour les processus engendrés.

UTILSATION MAITRE ESCLAVE
il faut recompiler le source de l'esclave pour chaque architecture, et le placer dans pvm3/bin/ARCH (ex pvm3/bin/LINUX, ou pvm3/bin/SGI)
 

UNE INTRODUCTION A LA PROGRAMMATION PVM

Ce document est basé sur "An Introduction to PVM programming".

1 Introduction à PVM

PVM est un système de type "message passing", qui permet à un ensemble de machines Unix en réseau d'être utilisées comme une unique machine parallèle à mémoire distribuée.  C'est l'ensemble des machines que l'on appelle machine virtuelle ("Virtual Machine").
Le code source, ainsi que énorme documentation de PVM3 sont stocké à l'adresse http://www.netlib.org/pvm3/index.html.

2 Compiler et lancer un programme PVM

La compilation d'un source xxx.c utilisant les fonctions PVM se fait simplement au moyen d'un ligne de commande telle que :
olly> cc -L~/pvm3/lib/ARCHI xxx.c -lpvm3 -o xxx
Le fichier xxx doit être placé dans le répertoire ~/pvm3/bin/ARCHI.
Si le réseau n'est pas en système de fichiers partagé (NFS), la même procédure doit être effectuée sur chacune des machines du réseau.
Il est ensuite nécéssaire d'éxécuter pvm, et seulement alors de lancer xxx .

3 Les fonctions PVM de base
 

4 Les fonctions PVM de communication entre taches
La communication au sein d'une MV se fait au moyen de messages, en conséquences des fonctions pvm permettent d'envoyer des messages, tandis que d'autres permettent d'en recevoir. Fonctions de réception Debuggage de programmes PVM
Les sorties des programmes PVM (master et slaves) sont stockés dans un fichier de logs de type /tmp/pvm.l501.
Il est aussi possible de voir ces sorties en utilisant la console PVM avec spawn -> prog
Finalement :
spawn -? prog lance le debuggage de prog et des taches executées dans d'autre xterm grace a GDB.

Systèmes de fichiers distants

Systèmes de Fichiers Journalisés