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

Choisir un environnement de développement Discussion :

calcul scientifique & compilateur


Sujet :

Choisir un environnement de développement

  1. #1
    Candidat au Club
    calcul scientifique & compilateur
    Bonjour,

    Je travail en ce moment avec un prof de physique sur la compilation d'un logiciel de calcul scientifique (méthode de Monte-Carlo) sur un cluster. La compilation utilise les librairies de PVM et l'application est écrite en Fortran/C. Le système est Debian GNU/Linux.

    Le prof s'attend à des résultats différents de ceux obtenues sur des plateformes Windows, probablement à cause des compilateurs utilisés. J'ai pensé que les processeurs utilisés pouvaient entrer en considération aussi...

    Auriez-vous des liens ou de la lecture à me proposer concernant ce sujet?

  2. #2
    Rédacteur

    Citation Envoyé par kw1k
    Je travail en ce moment avec un prof de physique sur la compilation d'un logiciel de calcul scientifique (méthode de Monte-Carlo) sur un cluster. La compilation utilise les librairies de PVM et l'application est écrite en Fortran/C. Le système est Debian GNU/Linux.

    Le prof s'attend à des résultats différents de ceux obtenues sur des plateformes Windows, probablement à cause des compilateurs utilisés. J'ai pensé que les processeurs utilisés pouvaient entrer en considération aussi...
    On appelle méthode de Monte-Carlo toute méthode visant à calculer une valeur numérique, et utilisant des procédés aléatoires, c'est-à-dire des techniques probabilistes.

    Tout dépend de la manière donc tu calcule le (pseudo-)hasard ? Si c'est basé sur les caractéristiques du CPU, y a de forte chance pour que ça change.

  3. #3
    Expert éminent
    Citation Envoyé par kw1k
    Bonjour,

    Je travail en ce moment avec un prof de physique sur la compilation d'un logiciel de calcul scientifique (méthode de Monte-Carlo) sur un cluster. La compilation utilise les librairies de PVM et l'application est écrite en Fortran/C. Le système est Debian GNU/Linux.

    Le prof s'attend à des résultats différents de ceux obtenues sur des plateformes Windows, probablement à cause des compilateurs utilisés. J'ai pensé que les processeurs utilisés pouvaient entrer en considération aussi...

    Auriez-vous des liens ou de la lecture à me proposer concernant ce sujet?
    Je vois differente sources de differences:
    • differences entre les generateurs de nombres pseudo-aleatoires si vous n'implementez pas le votre
    • Linux a des long double sur 80 bits, Windows sur 64 bits; meme si on ne les utilise pas, ca pose d'interessants problemes d'arrondis deja si le compilateur se comporte correctement (le C permet de faire certains calculs avec plus de precision que ne laisse le croire les variables, je ne sais pas pour le fortran); et en pratique avec un x86, gcc ne se comporte pas toujours correctement (il utilise parfois plus de precision dans des contextes ou le C ne le permet pas; le probleme est connu et ne sera vraissemblablement jamais corrige, il y a moyen de diminuer la propabilite d'avoir ce genre de probleme en modifiant le code et en utilisant des options, mais ca peut etre couteux en temps de calcul);
    • les optimiseurs vont reorganiser les calculs et rien ne garanti que ce soit de la meme maniere, ni que les resultats vont etre identiques apres reorganisation; ca depend en partie des options (en particulier si on se met a utiliser des choses comme fast-math avec gcc)
    • les bibliotheques de calculs de fonctions transcendantes sont differentes et ne donnent pas toujours des resultats avec une precision parfaite (en fait optenir une precision parfaite sur ce genre de fonctions est quasiment impossible)
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.