Laurent Winkler a écrit 1 commentaire

  • [^] # Re: Et pourquoi pas OpenMP ?

    Posté par  . En réponse au message Programmation parallèle en POP-C++. Évalué à 1.

    Effectivement, ce logiciel a été développé par quelques personnes dans un milieu académique. Il ne tient donc absolument pas la comparaison avec des MPI et CORBA.

    Pour ce qui est d'une comparaison directe. MPI est, selon mes connaissances, plus une gestion de la communication entre différente machines. Il permet par extension de faire de la programmation en parallèle mais cela doit être fait explicitement par le programmeur (que ce soit considéré comme un ennui ou non). POP-C++ se base lui sur une décomposition en objets très similaires à celle utilisé pour de la programmation séquentielle.

    CORBA est, il me semble une suite très complète mais plus orientée vers la création d'applications de gestion. Ca a l'air assez bien monté pour la création d'objets à distance et la communication. Je ne sais par contre pas ce qu'il en est pour la complexité du programme et la lourdeur.

    Les TBB ont l'air très prometteurs pour la gestion des threads. En comparaison POP-C++ est beaucoup plus simpliste. Par contre, l'utilisateur n'a besoin de gérer que les descripteurs des méthodes, la gestion des threads est gérée automatiquement.

    Pour ce qui est de l'efficacité, POP-C++ n'est pas conçu pour faire de la parallélisation fine. La création d'objets parallèles est trop lente pour cela. MPI est probablement plus efficace. Mais les approches peuvent être complémentaires. (Pour l'info, on a déjà fait de la prog parallèle POP-C++ et MPI dans un même programme).

    Il est clair que comme c'est une extension de C++, on hérite par défaut des forces et faiblesses du langage. Mais la syntaxe supplémentaire ne pose pas de problème majeur. A partir du moment où on a vu la différence entre "class" et "parclass", le reste est juste une subtilité dans l'appel de méthodes. Il y a par contre d'autres complications par rapport à un programme séquentiel simple.

    Par exemple :
    - Restrictions sur la structure d'une classe pour en faire un classe parallèle (toutes les variables doivent être privés, pas de variables statique,...)
    - Conception du programme en parallèle et exécution efficace. (Mais ça, c'est commun à tous les programmes parallèles)

    Toutes les questions et critiques sont de toute façon les bienvenues ! C'est très intéressant d'avoir un avis extérieur.