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 :

OpenMP et Qthread


Sujet :

Threads & Processus C++

  1. #41
    Membre éprouvé 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
    Par défaut
    Oublie ma derniere remarque concernant la liberation de mon thread principale.

    Je suiis passé à 4 thread avec omp_set_num_threads(4) et là ca semble focntionner correctement. Je suis revue à 2 toujours avec la même command et la miracle tout fonctionne bien pour le moment.

    Comme si une variable concernant le nombre de threads lancé n'était pas correctement intialisée par default.

  2. #42
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Le problème c'est que ton programme est peut être tombé en marche.... Je te conseil de vérifier que tu n'as plus ce pointeur feeefeee.

    Sinon pour ta persévérance. Tu devrais remonter ton patch au développeur de mingw.

  3. #43
    Membre éprouvé 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
    Par défaut
    J'ai parlé trop vite, c'est plus stable mais la libération des threads dans la fonction en question plante toujours pour des pointeurs pointant sur n'importe quoi et pas forcement ffeeffee

  4. #44
    screetch
    Invité(e)
    Par défaut
    ca ressemble a un probleme de synchro, il semble qu'un autre thread s'occuppe du nettoyage. Lorsque ca crashe, que font les autres threads ?

  5. #45
    Membre éprouvé 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
    Par défaut
    Je sais pas trop; Mais ce qui est bizarre c'est que le code ne passe par la fonction "gomp_free_thread" qu'à la fin du thread principale quelquesoit le nombre de calcul // openMP fait pendant la durée de vie du thread principale, ici un QThread

  6. #46
    screetch
    Invité(e)
    Par défaut
    OpenMP ne construit pas un thread a chauqe appel OpenMP ca serait trop cher sinon
    il y a un thread pool de quelques threads qui s'occuppe du boulot lorsqu'ils n'ont rien a faire
    donc ils ne sont pas détruis en cours d'éxécution

  7. #47
    Membre éprouvé 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
    Par défaut
    Ok je comprend mieux

    Si je supprime cette fonction je n'ai visiblement plus de plantage mais le nombre de threads de mon appli grandit à chaque nouveau calcul. Ce qui finit toujours pas générer un nouveau plantage quand le nbr de thread excede la limite du systeme (quelquechose comme 700 chez moi)

  8. #48
    Membre éprouvé 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
    Par défaut
    Ok c'est pas la premiere fois que je le dis, mais je pense avoir trouvé:
    J'ai mis en derniere ligne de mon thread principale la ligne preconisé par la lib pthread :

    pthread_win32_thread_detach_np();

    Et pour le moment ca semble fonctionner. Je confirme ca ou non dans quelquetemps

  9. #49
    screetch
    Invité(e)
    Par défaut
    il te faut aussi un attach alors ?

    http://sourceware.org/pthreads-win32...detach_np.html

    pinaise tu est costaud en debugging en tous cas ^^

  10. #50
    Membre éprouvé 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
    Par défaut
    Avec ou sans attach c'est pareil, je pense que là la libcomp se débrouille.

    Citation Envoyé par screetch Voir le message
    pinaise tu est costaud en debugging en tous cas ^^
    Je crois pas ! Ca fait des jours que je galére avec ce truc et c'est toi qui m'a débloqué avec les options du config.h à changer.

    Alors merci beaucoups

  11. #51
    Membre éprouvé 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
    Par défaut
    Je met ce toppic comme résolu. Ca semble vraiment stable et opérationnel a présent. En esperant que cela dure.

    J'avoue que je ne pensais pas resoudre mon probléme qui semblait plutot complexe. J'ai deposé cette question sur plusieurs autres forums (celui de openMP en autre) sans succés. Est comme d'habitude c'est ici que j'ai trouvé mes réponses.

    J'en profite pour remercier tous les intervenants et finallement l'équipe de developpez qui maintient ce outil fantastique qu'est ce forum, sans lequel j'aurais probablement renoncé à plusieurs développement important.

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

Discussions similaires

  1. GCC PTHREAD OPENMP MACOSX
    Par epsilon68 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 30/11/2007, 01h46
  2. Qt macosx gcc & icc openmp
    Par epsilon68 dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 34
    Dernier message: 29/10/2007, 11h07
  3. TBB vs OpenMP
    Par yan dans le forum C++
    Réponses: 3
    Dernier message: 24/08/2007, 00h30
  4. OpenMP & Library
    Par uriotcea dans le forum C++
    Réponses: 8
    Dernier message: 04/10/2006, 22h16
  5. OpenMP sous Visual 2005
    Par teddy fredaigues dans le forum MFC
    Réponses: 6
    Dernier message: 19/01/2006, 14h43

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