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

Fortran Discussion :

Probleme sur le passage de 1 à 4 threads en openMP en mode debug


Sujet :

Fortran

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 84
    Points : 58
    Points
    58
    Par défaut Probleme sur le passage de 1 à 4 threads en openMP en mode debug
    Bonjour
    Voici un bout de mon code contenu dans une subroutine que je veux // en openMP.
    Mon souci est que lorsque je passe de 1 à 4 threads (avec num_threads), le code passe en release mais pas en debug.
    Je suis sous vs2008, avec compilateur intel.
    Est ce qu'à tous hasard il ne manque une ligne de commende pour dire à tous les threads de s'attendre ?
    Si oui , c'est le cas quel est cette commande ?
    Merci par avance
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    	!$OMP PARALLEL num_threads(4) 
    	!$OMP DO
    	do is = namin,namax 
    		cost(is)=cos( teth(is) )
    		sist(is)=sin( teth(is) )
    		ak=wavnum(is)
    		bt(is) = ak*(x(1)*cost(is)-2*x(2)*sist(is))-pper(is)*t+4*phi(is)
    		pel(is) = ah(is) * cos(bt(is))
     	enddo
     
    	!$omp end do
    	!$OMP END PARALLEL       
    	.
    	.
    	. plusieurs ligne de code
    	.
     
    	!$OMP PARALLEL num_threads(4) 
    	!$OMP DO
    	do is = namin,namax !	CLC  20/10/2010: environnement block localise
     
                cost(is)=cos( teth(is) +pi )
                sist(is)=sin( teth(is) )
                ak=wavnum(is)
                bt(is) = ak*(x(1)*cost(is)+x(2)*sist(is))+pper(is)*t-phi(is)
                pel(is) = ah(is) * cos(bt(is))			
    	    opt1 = ak*ah(is)*sin(bt(is))*sign(is)
                loc_1(is) = cost(is)*opt1
                loc_2(is) = sist(is)*opt1	  
                t_from_t0 = t - tiniglob
                if (t_from_t0.le.rampt) then
    		rr = t_from_t0/rampt
    		f = 3.*rr**5-15.*rr**4+10.*rr**3
    		fp = 30./rampt*(rr**5-20.*rr**4+rr**2)
     
                    opt1 = fp*ah(is)/pper(is)
                    opt2 = opt1*ak*ah(is)*cos(bt(is))
                    pel(is)= pel(is)*f  - opt1*sin(bt(is)) 
    		loc_1(is) = f* loc_1(is) + opt2*cost(is)
    		loc_2(is) = f*loc_2(is) + opt2*sist(is)
                endif
    	enddo
     
    	elev=0
    	xn_sl(1)=0
    	xn_sl(2)=0
    	elev=sum(pel(namin:namax))
    	xn_sl(1)=elev+ sum(loc_1(namin:namax))
    	xn_sl(2)=elev- sum(loc_2(namin:namax))

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 152
    Points : 191
    Points
    191
    Par défaut
    Sauf erreur de ma part, tu ne peux pas régler le nombre de threads de cette façon.

    La bonne syntaxe devrait ressembler à quelque chose comme : call OMP_SET_NUM_THREADS(4) à placer avant la déclaration de la région parallèle (sans oublier le USE OMP_LIB au début du code)

    Plus d'infos peuvent être trouvée sur ce tuto OMP (très bien fait à mon sens)
    http://www.openmp.org/presentations/...penMPv1_v2.pdf

    En espérant avoir répondu à ta question,

    Marlan

Discussions similaires

  1. probleme sur passage d'argument
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 31/01/2008, 09h55
  2. probleme sur un thread
    Par ____22 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 29/12/2007, 16h52
  3. Threads et JDBC en mode Debug
    Par KillMePlease dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 01/03/2007, 13h21
  4. Probleme sur le passage par reference
    Par schnito dans le forum Langage
    Réponses: 10
    Dernier message: 02/02/2006, 16h50
  5. probleme sur le passage d'argument par adresse
    Par ghostdog dans le forum C
    Réponses: 4
    Dernier message: 23/11/2005, 15h50

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