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 :

Plantage aléatoire surprenant


Sujet :

Fortran

  1. #1
    Membre habitué
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Points : 180
    Points
    180
    Par défaut Plantage aléatoire surprenant
    Bonjour le forum,
    j'ai une nouvelle question à propos d'un développement que j'ai à faire et pour lequel j'ai déjà trouvé ici de l'aide qui m'a été utile; il s'agit d'un gros programme en fortran (gros pour moi en tous cas) qui devra tourner assez vite, enfin pour lequel la vitesse d'exécution sera critique; donc j'ai appris à paralléliser mon code avec openmp (l'une des machines sur lesquelles je bosse a quarante proc's), mais parfois il plante bizarrement. D'après ce que j'ai réussi à comprendre, ça se passe dans une série de boucles imbriquées dont la condition de sortie ne se présente plus, ce qui fait qu'il tourne indéfiniment. MAIS... [tantantan, roulement de tambour pour sublimer le suspens...] donc,... MAIS ça n'est pas systématique. Ce qui veut dire que des fois tout se passe bien, ça va jusqu'au bout et les résultats sont bons, et parfois ça se met à patiner dans le sous-programme dont la sortie est délicate et je suis obligé de tuer le programme.
    Ce que je soupçonne est un peu hallucinant, c'est que, du fait que le programme tourne sur plusieurs proc's (c'est la première application de ce type, en parallèle, que je développe) j'imagine que selon la charge de la machine (un serveur de calcul Red Hat sous linux) donc j'imagine que selon cette charge, due à de l'interactif et à d'autres applications de calcul de structures, eh bien le cadencement entre les différents threads se passe différemment d'une fois sur l'autre, et ça se met parfois à patiner dans un de mes threads.
    Il se trouve que je crois pouvoir m'apercevoir assez vite de ce que donnera un run en cours, puisque certaines des valeurs que je demande temporairement d'afficher pour tenter de comprendre ce qui se passe, s'affichent en "********" comme toute variable du fortran dont la valeur ne "passe" pas dans le format d'affichage spécifié.
    Mais tantantan, deuxième roulement de tambour, des fois toutes les valeurs intermédiaires sont bien affichées, et ça patine quand même, et des fois ça ne s'affiche que partiellement et certains threads finissent bien. (ceux qui ont tout bien affiché, probablement)
    Merci de m'aider encore sur ce point, qu'est ce qui peut faire planter de cette façon quasi aléatoire ?
    P.S. Dis Toto, pourquoi l'univers existe-t'il ?
    Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se causer avant.

  2. #2
    Membre habitué
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Points : 180
    Points
    180
    Par défaut
    Ok j'ai trouvé, c'est une segfault "ordinaire" (que gdb aurait dû détecter), juste un sous programme auquel j'ai passé un tableau en argument, mais pas l'index de l'élément de ce tableau que j'ai besoin d'utiliser; donc au premier essai d'utiliser cette valeur du tableau, indexée par un index non initialisé, eh bien il se retrouve dans le choux.
    Maintenant pourquoi gdb marche alors que le programme plante, eh bien on verra ça dans une autre vie si je fais encore du code !
    P.S. Dis Toto, pourquoi l'univers existe-t'il ?
    Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se causer avant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plantages aléatoires en exécution et en dev
    Par lbrun79 dans le forum Access
    Réponses: 6
    Dernier message: 06/11/2007, 19h10
  2. Plantage aléatoire avec intellde
    Par arnaud_verlaine dans le forum Windows XP
    Réponses: 4
    Dernier message: 30/06/2007, 13h37
  3. [Access 2003] Plantage aléatoire
    Par Strontium dans le forum Access
    Réponses: 1
    Dernier message: 04/06/2007, 15h07
  4. Plantage aléatoire à l'ouv. de fichiers ext.
    Par Stutak dans le forum Access
    Réponses: 3
    Dernier message: 09/08/2006, 19h36
  5. Réponses: 15
    Dernier message: 07/07/2005, 11h05

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