Forum Programmation.autre La mouise (la vraie)

Posté par  .
Étiquettes :
0
1
juil.
2005
Ou alors, ça y ressemble méchamment...

J'ai du code en fortran 90 que je fais tourner avec un snapshot de g95 ; le code se comporte de façon délirante.

Par exemple, dans la situation "de départ" le code se comporte "mal" (peu importent les détails) ; et l'ajout d'une simple ligne

print*,sum(maxloc(oneDimVector))

suffit à ce que le code fonctionne correctement. Qu'est-ce que ça vous inspire ?

Merci d'avance
  • # La stack ?

    Posté par  . Évalué à 2.

    En C je dirais que tu as ta stack dans un sale etat pour ce qui est de fortran je ne suis pas sur je n'ai fait que du f77 et ca fait longtemps.
  • # euh

    Posté par  . Évalué à 0.

    ca m inspire que le compilateur fait des betises.
    J'ai eu le tour avec fontconfig (ou freetype ? je sais plus) compilé sur PPC avec un GCC 3.x ( je sais plus trop).
    Apres avoir ajouté un printf(""); à l endroit du plantage, tout etait redevenu normal.
    • [^] # Re: euh

      Posté par  (site web personnel) . Évalué à 3.

      Faux

      En faisant ca tu as agrandit la taille de ton processus en memoire et donc peut etre permis a une boucle mal codée de ne plus faire un segfault en depassant la dite taille, ou pire changé les octets que tu écrasait en une version qui ne plante pas.
      --> pur coup de bol (qui arrive souvent en fait)
      • [^] # Re: euh

        Posté par  . Évalué à 0.

        Pas Faux. Ce que tu exposes est probable, tout comme ce que j expose n'est pas faux.
        D'autant plus que le freetype (ou fontconfig) que je compilais etait une version stable. C'était avec une version stable de Gcc, et que ce bug ne se reproduisait pas sur x86, mais uniquement sur mon mac.

        Le pb ne venait pas du programme, mais bien du compilateur.
  • # En debug ?

    Posté par  . Évalué à 1.

    J'ai déjà eu ce type de problème avec du fortran 77. Je ne me souviens plus des détails mais c'était un truc du style dépassement de tableau ou d'utilisation de variable non initialisée.

    Tu as essayé en debug avec des flags genre check-bound ?
    • [^] # Re: En debug ?

      Posté par  . Évalué à 2.

      Oui, avec -fbounds-check, mais ça n'a rien donné :-/

      Bonne idée en tous cas...
  • # Commentaire supprimé

    Posté par  . Évalué à 1.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: pas trop d'idee mais...

      Posté par  . Évalué à 2.

      tu peux essayer avec l'autre compilos libre de fortran 90

      Oui, mais j'utilise la bibliothèque HDF5 que ne pouvait pas compiler gfortran jusque très récemment (à cause de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17917(...) ). Il y a un patch depuis quelques jours, je devrais effectivement tester mais avec le temps j'ai l'impression que, bien que tout seul sur le coup, Andy Vaught maintient mieux son g95 que ne l'est la branche officielle gfortran...

      mais mes tests m'ont montre que g95 est plutot pas mal mais lent par rapport au compilo lahey par exemple.

      Ah bon ? Moi j'avais plutôt une bonne impression après une comparaison rapide avec le compilateur d'Intel ; enfin pour moi une différence de performances de 20-30% n'a pas beaucoup d'importance
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 2.

        Ce commentaire a été supprimé par l’équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.