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 constructeur avec paramètres


Sujet :

Threads & Processus C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 65
    Par défaut openMP et constructeur avec paramètres
    Bonjour,

    je viens de découvrir l'une de mes limites dans la compréhension d'openmp.

    Je suis dans une fonction dans laquelle j'utilise deux sections pour paralléliser deux bouts de codes. Dans ces deux bouts de code, j'utilise deux objets de type CMatrice (une classe que j'ai créée moi-même, qui contient deux entiers et un pointeur double**) qui sont définis privés pour chacune des sections.

    Or, en instanciant les deux objets, j'appelle un constructeur à deux paramètres entiers, qui sont affectées aux deux entiers membres de la classe, et qui alloue dynamiquement le double** avec ces deux entiers.

    MAIS, quand je souhaite modifier dans chaque section les deux objets, j'obtiens une erreur de segmentation, car il semble que le pointeur double** ne soit pas alloué.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    CMatrix P1(2,2)
    CMatrix P2(2,2);
     
     #pragma omp sections private(P1, P2)
      {
        #pragma omp section
        {
           P1.set(0,0,1);
           P1.set(0,1,2);
           P1.set(1,0,3);
           P1.set(1,1,4);
        }
        #pragma omp section
        {
           P2.set(0,0,1);
           P2.set(0,1,2);
           P2.set(1,0,3);
           P2.set(1,1,4);
        }
    }
    Je n'ai pas mis le vrai bout de code qui modifie les matrices, mais cela revient exactement au même. Le code m'envoie une erreur de segmentation quand j'essaie d'accéder à l'élement 0,0 de P1 ou P2.

    Ma question est donc : l'initialisation par constructeurs avec paramètres est-elle complètement occultée par les sections ???

    Merci par avance.

    Cordialement.

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Citation Envoyé par ketchupi Voir le message
    Ma question est donc : l'initialisation par constructeurs avec paramètres est-elle complètement occultée par les sections ???
    Bonjour

    Alors, non, les sections "occultent" pas les variables (pas sur du sens que tu donnes à "occulte"). La directive private permet de dire que les variables p1 et P2 sont des variables privés (ie locale) à chaque thread
    Si tu veux utiliser tes variables p1 et p2 déclarées hors du contexte openmp, il faut utiliser shared au lieu de private

Discussions similaires

  1. Singleton constructeur avec paramètres
    Par ancrou dans le forum Langage
    Réponses: 5
    Dernier message: 23/06/2009, 11h20
  2. [C#]Constructeur avec paramètre dans designer
    Par ClaudeBg dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/02/2009, 19h18
  3. [PHP 5.2] [POO] Constructeur avec paramètres et héritage
    Par yamayo dans le forum Langage
    Réponses: 4
    Dernier message: 11/01/2009, 20h40
  4. [Framework] [Core] bean et constructeur avec paramètre
    Par robert_trudel dans le forum Spring
    Réponses: 3
    Dernier message: 10/07/2008, 13h52
  5. [EJB Session] Constructeur avec paramètres ?
    Par DevTeam_ dans le forum Java EE
    Réponses: 23
    Dernier message: 07/05/2008, 12h07

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