IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

Le C++ est-il adapt� pour le multithreading et la programation parall�le ?


Sujet :

Threads & Processus C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut Le C++ est-il adapt� pour le multithreading et la programation parall�le ?
    Bonsoir,

    Selon vous, C++ fait-il partie des langages les plus adapt�s pour le multithreading et la programmation parall�le, sujet au coeur de la recherche et des �volutions aujourd'hui ? Quels sont les meilleurs outils pour en tirer au mieux parti ?

    N'h�sitez pas � argumenter, bien au contraire

    PS : voici quelques discussions qui se rapportent au d�veloppement parall�le en C++
    http://www.developpez.net/forums/d74...rallel-studio/
    http://www.developpez.net/forums/d74...-parallelisme/

  2. #2
    Membre �prouv�
    �tudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Par d�faut
    J'ai jamais pouss� tr�s loin mes utilisations des fils, mais je suis tomb� sur ceci. Tout porte � croire que le C++ est effectivement adapt� � cette utilisation si le comit� d�cide d'ajouter ces outils � la STL.

    Apr�s, il faudra voir le r�sultat.

  3. #3
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Beaucoup de frameworks existent pour le C++ permettant la programmation parall�le. Ils sont tous plus ou moins efficaces :
    - OpenMP
    - MPI
    - TBB
    - wxWidgets
    - Qt
    - ...

    Bref, tr�s efficace. Et avec les fonctions lambda, �a va encore aller en s'am�liorant.

  4. #4
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    D�j�, j'aimerais distinguer 3 types de multithreading :
    - Pour les performances (exploiter un mat�riel multi-c�urs)
    - Pour la r�activit� (une IHM qui reste r�active quand le calcul s'�x�cute, un programme g�rant en temps r�el des �v�nements ext�rieurs)
    - Pour l'isolation (un serveur web isolant les diff�rentes r�ponses � diff�rentes requ�tes)

    Je pense que la question �tait particuli�rement orient�e vers le parall�lisme pour la performance, qui est en effet d'actualit� de nos jours.

    Pour la question, aujourd'hui, je dirais non car :
    - Le comportement multithread du C++ est platform dependant
    - Il n'y a rien de standard pour g�rer les threads, les locks...
    - Il n'y a rien qui permette de remonter une exception depuis un thread vers le thread l'ayant lanc�
    - La notion de fonction pure qui permettrait d'aider une parall�lisation automatique n'existe pas
    - La syntaxe pour d�signer une action est lourde (pas de lambda-expression)
    - C'est un langage imp�ratif, qui plus est o� la possibilit� d'aliasing est omnipr�sente, rendant la parall�lisation difficile.

    L'avantage, c'est qu'� part le dernier point, tous sont adress�s par C++0x

    Et comme d'un autre c�t�, le C++ est un langage qui est orient� performances, il me semble naturel que que faire de la performance gr�ce au parall�lisme se base d�j� sur le fait de faire de la performance tout court.

    Autre point positif, le C++ est un langage o� tout est fait pour permettre de b�tir des niveaux d'abstraction �lev�s � partir de couches bas niveau, sans que cette abstraction ait un co�t trop important. Threads et lock sont des primitives bas niveau. Des biblioth�ques comme TBB sont d'un niveau un peu plus �lev�. Tout un niveau o� le parall�lisme devient non plus explicite mais implicite reste � construire.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  5. #5
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    Et comme d'un autre c�t�, le C++ est un langage qui est orient� performances, il me semble naturel que que faire de la performance gr�ce au parall�lisme se base d�j� sur le fait de faire de la performance tout court.
    Certains diront qu'il manque � ce niveau la possibilit� de supprimer l'aliasing de pointeurs

  6. #6
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    - La notion de fonction pure qui permettrait d'aider une parall�lisation automatique n'existe pas.
    [...]
    - C'est un langage imp�ratif...

    L'avantage, c'est qu'� part le dernier point, tous sont adress�s par C++0x
    Des fonctions pures ?
    Je ne me souviens pas avoir vu passer de proposition pour �a et la recherche du mot "pure" dans le draft de mars ne donne rien (sauf des r�f�rences aux fonctions virtuelles pures)
    Est-ce une exclu pour developpez ?
    Aurais-tu quelques d�tails ?

  7. #7
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Citation Envoy� par Arzar Voir le message
    Des fonctions pures ?
    Je ne me souviens pas avoir vu passer de proposition pour �a et la recherche du mot "pure" dans le draft de mars ne donne rien (sauf des r�f�rences aux fonctions virtuelles pures)
    En fait, j'ai �t� un peu trop enthousiaste...
    L'id�e n'est pas forc�ment d'avoir une gestion par le standard de fonctions pures, mais de permettre � des compilateurs de g�rer la notion de fonction pure. Mais cette id�e fait d�bat.

    En gros, il y a une proposition sur les attributs, et parmi les exemples d'attributs, l'un des plus cit�s est un attribut pure pour les fonctions. Mais les attributs seraient en grande partie non standards, juste des points d'expansion pour les compilateurs. http://www.open-std.org/jtc1/sc22/wg...2008/n2553.pdf
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  8. #8
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    - Il n'y a rien qui permette de remonter une exception depuis un thread vers le thread l'ayant lanc�
    Je ne comprends pas le fonctionnement / usage. Chaque thread ayant sa propre pile, et les exceptions remontant cette pile, comment �a marche / s'utilise ?

  9. #9
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par Aurelien.Regat-Barrel Voir le message
    Je ne comprends pas le fonctionnement / usage. Chaque thread ayant sa propre pile, et les exceptions remontant cette pile, comment �a marche / s'utilise ?
    Un exemple d'utilisation bas� sur la notion de "future" o� on lance un calcul en parall�le en gardant un objet qui repr�sente le r�sultat, quand on essaie d'avoir la valeur du r�sultat, on bloque en attendant le r�sultat du calcul. Si le calcul �choue � cause d'une exception, il est sens� de jeter � nouveau cette exception quand on cherche � obtenir la valeur. Il est d'autres cas o� on peut vouloir copier une exception d'une thread � l'autre.

Discussions similaires

  1. Le langage Java est-il adapt� pour les jeux vid�o ?
    Par Invit� dans le forum D�veloppement 2D, 3D et Jeux
    R�ponses: 637
    Dernier message: 05/02/2021, 22h38
  2. R�ponses: 39
    Dernier message: 13/07/2018, 04h48
  3. R�ponses: 1
    Dernier message: 27/04/2009, 10h28
  4. R�ponses: 44
    Dernier message: 21/01/2009, 10h34
  5. [Joomla!] un CMS est-il adapt� pour mon site?
    Par welcominh dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 2
    Dernier message: 11/04/2008, 22h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo