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 ?
Partager