Re à tou/te/s,

On 08/25/2014 05:37 AM, Bruno Paul Martin wrote:
[...]
> MPI (layer5 et au delà) est le protocol de communication
> assurant le fonctionnement d'un système à mémoire partagée
> distribué. J'ai bien dit distribué...

Ce n'est pas exact. MPI = "Message Passing Interface",
c'est-à-dire une norme ouverte ("Interface") pour une
bibliothèque d'échange de messages ("Message Passing").
Ni plus, ni moins. Pour désambiguation, je parle de ceci :
http://en.wikipedia.org/wiki/Message_Passing_Interface

Aucune notion de mémoire partagée distribuée (DSM, pour
"Distributed Shared Memory") là-dedans. Il faut plutôt
aller regarder du côté de travaux tels que Koan, etc. :

ftp://ftp.irisa.fr/local/KOAN/PI-862.ps.Z

C'est déjà vieux (années 1990).

> A vous d'écrire un code d'application qui supportera une
> quelconque tolérance de panne.

Nope. Certaines implémentations de MPI partent
en deadlock lorsque vous appelez une primitive de
communication collective incluant un noeud "mort".

C'est pour cela que des travaux sur la tolérance
aux pannes des implémentations MPI ont été réalisés,
mais c'est pas gagné :

http://public.lanl.gov/lampi/

Le code d'application n'y pourra rien, si la mise
en oeuvre de MPI, voire le firmware des cartes de
communication (type Myrinet), ne prend pas cette
problématique en compte à son niveau.

> MPI favorise la mémoire localement

Non, c'est pas son job. Il "passe" des messages,
c'est tout.

> et permet entre autre la mise en oeuvre d'algorithme
> pour lesquels la synchronisation est un vrai problème

Elle l'est toujours, à l'exception des algorithmes
"embarrassingly parallel".  :-)

> tel que la multiplication de matrices distribuée ou bien
> de répartition de charge sur plusieurs processeurs,

C'est mon job à moi.  ;-)
http://www.labri.fr/perso/pelegrin/scotch/

> il permet ainsi d'établir des communications entre des processus
> ayant été démarrés séparément.

Il a fallu attendre la norme MPI-2 pour cela,
avec les "inter-communicateurs". La norme MPI-1
n'avait pas été rédigée dans cette optique. Et
c'est plutôt bancal, il faut l'admettre.

PVM était un système plus flexible, de ce point de vue,
plus pensé pour le distribué que pour le parallèle.

> Dans les années 90 je faisait déjà joujou avec des PC
> de l'époque ou des stations de travail sun, hp, sur un
> réseau d'universités constituant ainsi une grille de
> calcul, qui peut le plus peut le moins, d'une centaine
> d'entre eux.

La presque totalité des implémentations de MPI n'étaient
pas taillées pour cela, du fait de l'hétérogénéité des
latences entre réseaux de clusters situés dans des pays
différents. Les réseaux en bus "tuaient" les algorithmes
de communication collective, plus pensés pour les réseaux
d'interconnexion multi-routes des machines parallèles.

Voir par exemple travaux de l'équipe de SimGRID là-dessus :

http://simgrid.gforge.inria.fr/simgrid/3.10/doc/group__SMPI__API.html

> A+ Le sujet est clos pour moi je n'encourage pas la
> polémique mais bien au contraire la délibération.

J'y apporte mes éléments, si délibération il doit y avoir. :-)

A+,


                                f.p.

_______________________________________________
comptoir mailing list
[email protected]
http://cafedu.com/mailman/listinfo/comptoir_cafedu.com

Répondre à