• [^] # Re: À quoi servent tous ces flops ?

    Posté par (site web personnel) . En réponse à la dépêche Sortie du Top 500 de juin 2011. Évalué à 10.

    /mavie=ON
    Je fait de la simulation numérique depuis fin 1999: en physique des plasmas tout d'abord puis maintenant en physique de la neige
    /mavie=OFF

    Evidement, sur de telles machines, on lance beaucoup de calculs en même temps, par beaucoup d'utilisateurs. Donc la machine ne reste ne général pas sans rien faire, il y a toujours des choses qui tournent dessus, voir une file d'attente de jobs à faire tourner (on travail en batch, donc on soumet un job, que le système exécute quand il le juge opportun. Il m'arrive d'attendre 3-4 jours avant que ma simulation ne passe).

    Avoir une puissance crête importante permet de livrer des résultats plus rapidement. Si une simulation dure 2 semaines, "débugger" la simulation n'est pas vraiment agréable: on lance la simulation, on attend 2 semaines, on voit ce qui doit être amélioré, puis on relance... donc le cycle pour obtenir une simulation dont on est content peut durer des mois. Pendant ma thèse, je devais définir des expériences a faire à partir de simulations numériques (les expériences se faisaient sur Z, voir http://en.wikipedia.org/wiki/Z_machine). Vu que ~300 personnes étaient impliquées dans la réalisation d'une expérience, il est très important que l'on ait mis toutes les chances de son coté en définissant correctement l'expérience à faire (vu le coût). Je faisait alors une succession de simulations (de 2 semaines) pendant 3-4 mois. Une machine plus puissante permet de raccourcir ce délais, donc d'essayer plus de choses et de plus rapidement pouvoir définir la simulation finale. Aujourd'hui, j'ai encore des simulations qui durent 1-2 semaines (en physique de la neige) et il faut parfois attendre la toute fin d'une simulation pour se rendre compte que quelque chose ne va pas... (et donc corriger puis relancer la simulation).

    Une plus grande puissance permet aussi de complexifier le modèle: dans notre modèle de manteau neigeux, nous voudrions ajouter le transport de la neige par le vent résolu en 3D (ce qui est important pour les avalanches). Mais une telle résolution 3D est extrèmement coûteuse en temps de calcul. Il faut donc que l'on parallelise le code qui gère cela (le reste du code étant déjà parallelisé), puis que l'on espère que notre cluster actuel soit suffisant pour les simulations que l'on veut faire (notre cluster compte ~400 coeurs). Si demain nous avions accès à un calculateur plus gros, on nous demanderait très rapidement d'augmenter la résolution, d'ajouter plus de physique dans le modèle, de simuler une surface plus importante, de coupler notre modèle avec un modele météo, etc

    Enfin, la simulation ne sert pas uniquement pour étudier ce qui est inaccessible: c'est aussi un moyen d'étudier des scénarios (par exemple, l'impact des divers scénarios de changement climatique sur l'hydrologie d'un canton Suisse), d'isoler certains effets ou phénomènes physique (par exemple, quel est l'impact de la suspension de la neige dans l'air sur l'humidité de l'air), de valider un modèle (je fait une simulation à l'échelle d'un canton, avec comme seul données, les mesures météo sur un ensemble de stations. Si je suis capable de simuler la décharge des cours d'eau telle qu'elle est mesurée, cela montre que mon modèle n'est pas totalement stupide quand à la constitution et la fonte du manteau neigeux), donc notre compréhension des phénomènes, d'être guidés dans la compréhension des mesures (un pic de pression mesuré sur une manip avait pu être expliqué par l'arrivé de la couronne de plasma sur le capteur d'après une simulation 2D), d'affiner une stratégie de mesures (ou dois-je placer de nouvelles stations météo pour fournir le plus d'informations pertinentes quand à l'état des routes dans une vallée), etc.

    Donc en gros, plus nous aurons de la puissance, plus nous lui trouverons des applications et plus ceux qui nous financent nous demanderons des calculs qui demandent plus de puissance!