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

C++ Discussion :

multithreading et recursivité


Sujet :

C++

  1. #61
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    ok, j'avais etudié ca aussi, et il me semblait que ca me compliquerait la tache a cause des données partagées.. mais je garde ca sous le coude !!

  2. #62
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu as une mémoire partagée, MPI n'est pas le meilleur choix.

  3. #63
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Une question a propo des threads
    J'ai récemment voulu partager un calcul simple sur mes 2 processeurs.
    Le résultat etait beaucoup plus lent. Visiblement de temps d'initialisation et gestion des thread prenait plus de temp que le calcul lui meme. Comment savoir au juste la durée minimum des tache a partager ?

  4. #64
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    disons que je pourrais "temporiser" la communication entre les thread, mais vu qu'une des principales optimisations de l'algo que j'ai decouverte repose sur la comparaison de l'element courant avec le resultat deja obtenu, je ne sais pas quel impact ca aurait sur les perfs. vu que le cluster auquel je vais avoir acces devrait disposer d'une memoire partagé entres tous les nodes, je ne vais pas avoir a me poser de questions

  5. #65
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    uriotcea> c'est une question interressante, je ne sais pas non plus combien "coute" la creation d'un thread.. je me suis debrouillé pour creer n threads une fois pour toute au debut, et ils piochent tous dans la meme pile de travail, a laquelle ils ajoutent egalement des elements. ca demande quelques acrobaties, mais ca a l'air de marcher pas mal.... vu que j'en bouffe depuis qq jours, tu peux ouvrir un post la dessus, je pourrais voir si mes nouvelles connaissances peuvent t'aider !

  6. #66
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par uriotcea
    Comment savoir au juste la durée minimum des tache a partager ?
    chez moi, ca se compte en jours (record de calcul achevé a 8 jours, d'ou l'interet de partager ca au max)

    c'est vrai que si ton calcul est rapide, la gestion des threads, meme si elle est en temps quasi constant, va te bouffer des perfs.. au dela de plusieurs heures de calcul je pense que ca devient interressant, en dessous c'est du souci pour rien, sauf si c'est facile a distribuer !

  7. #67
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Si tu as beaucoups de memoire partagé, as-tu pensé a regarder du coté de openMP qui est dédié au calcul en mémoire partagé

  8. #68
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    oui, j'avais regardé aussi. mais comme je le disait, je pense que le mieux dans mon cas c'est les outils du type Mosix : en fait, ceux ci ne necessite pas de programmation specifique, ils ditribuent simplement et de facon transparente les threads sur tous les ordis, donc pour peux qu'une appli soit en multithread, il n'y a rien de particulier a faire !

  9. #69
    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 : 49
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par uriotcea
    Une question a propo des threads
    J'ai récemment voulu partager un calcul simple sur mes 2 processeurs.
    Le résultat etait beaucoup plus lent. Visiblement de temps d'initialisation et gestion des thread prenait plus de temp que le calcul lui meme.
    Il y a des chances pour qu'une partie non négligeable du temps soit passée à synchroniser les threads, c'est à dire à attendre. As-tu regardé le taux d'occupation de tes processeurs pendant ton calcul ?
    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.

  10. #70
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour du multithread, OpenMP peut être très bien.
    Il y a longtemps eu un débat pour savoir ce qui était mieux entre OpenMP (multithread) et MPI (multiprocess).

    Visual C++ supporte OpenMP, mais je crois bien que c'est enlevé dans l'édition Express...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #71
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Médinoc
    Pour du multithread, OpenMP peut être très bien.
    Il y a longtemps eu un débat pour savoir ce qui était mieux entre OpenMP (multithread) et MPI (multiprocess).

    Visual C++ supporte OpenMP, mais je crois bien que c'est enlevé dans l'édition Express...
    Effectivement, la version Express ne supporte pas openMP, c'est dommage.

  12. #72
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    je m'y perds un peu.. je pensais que openmp etait designé surtout pour du calcul ditribué.. meme si du coup ca marche en local, ca n'est peut etre pas aussi adapté que du "simple" multithread ?? perso je suis basé sur boost, c'est simple et ca marche..

  13. #73
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Tu peux m'en dire un peu plus sur BOOST. Je ne connait absolument pas.
    Merci d'avance

  14. #74
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    en fait, j'en avais deja pas mal entendu parler avant, mais je ne m'etais (a tort) jamais penché dessus : c'est en fait une collection de librairie standardisée (ie : avec une interface similiaire et coherente), un peu comme la STL (d'ailleurs, boost se presente comme une sorte d'extension, voire un remplacement de la stl). j'en avais surtout entendu parler pour sa gestion des "pointeurs intelligent", mais elle offre beaucoup d'autre possibilité, donc du multithreading apparemment tres sur et bien foutu.. et tres agreable a utiliser, en trois coups de cuillere a pot, j'avais deja un truc correct.

    l'autre avantage est que boost est portable (windows, linux, mac).

    bien evidemment, tu n'est pas obligé d'installer toutes les librairies, elles sont en partie independante. tu trouveras une liste des possibilités ici :

    http://boost.org/libs/libraries.htm

  15. #75
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Boost n'est pas un remplacement. C'est un ensemble de bibliothèques qui étendent la SL (non, je n'ai pas mis de T). Cf la FAQ.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  16. #76
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par jobherzt
    boost se presente comme une sorte d'extension, voire un remplacement de la stl

  17. #77
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Et elle ne remplace ... rien du tout
    A la limite, elle offre de nouvelles alternatives dans des cas très précis, mais c'est tout.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  18. #78
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    d'ou l'emploi du terme "voire", qui me semble adapté dans ce cas

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. Iteration VS recursivité
    Par yacinechaouche dans le forum C
    Réponses: 40
    Dernier message: 16/11/2012, 11h52
  2. [WinAPI C++] MultiThreading et PostMessage
    Par Gruik dans le forum Windows
    Réponses: 7
    Dernier message: 29/03/2004, 15h58
  3. [WinAPI C++] MultiThreading?
    Par Gruik dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2004, 00h08
  4. [Win32]App multithread
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 25/09/2003, 09h57
  5. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 18/10/2002, 23h36

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