Sortie du Top 500 de juin 2011

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
Tags :
45
20
juin
2011
Technologie

Le trente‐septième Top 500 des super‐calculateurs mondiaux est sorti aujourd’hui à l’occasion de l’« International Supercomputing Conference » qui a lieu à Hambourg en Allemagne.

Rappelons que le Top 500 se base sur une soumission volontaire (de nombreuses machines puissantes mais classifiées ne participent pas à la course) et sur un comparateur de performances spécifique extrêmement parallélisable (le code Linpack qui concerne la résolution de systèmes d’équations linéaires).

L’analyse dans la suite de la dépêche.

La grande nouvelle de ce classement de juin 2011, c’est le retour du Japon sur le devant de la scène avec la première place du supercalculateur Fujitsu K. Cette machine a obtenu un total très impressionnant de 8,16 pétaflops au test Linpack, ce qui est plus de trois fois mieux que son poursuivant immédiat, le supercalculateur Tianhe-1A, qui occupait la tête du classement en novembre dernier.
Le Fujitsu K est original à plus d’un titre, car il utilise des processeurs à architecture SPARC ! Jusqu’à présent, ces derniers ne faisaient pas partie des puces les plus en vue sur le marché des superordinateurs. En fait, on peut même dire que cette architecture était en perte de vitesse dramatique et ne servait plus qu’à faire tourner le parc installé sous Solaris et à servir quelques marchés de niche.
Depuis plusieurs années, c’est la firme Fujitsu qui avait repris le flambeau de Sun/Oracle et qui fournissait les variantes SPARC les plus puissantes (SPARC64 VI Olympus et SPARC64 VII Jupiter).

En 2006, l’agence de recherche japonaise RIKEN a lancé un grand programme technologique de près d’un milliard d’euros dans le domaine des superordinateurs. Le but était de retrouver sa position dominante et de refaire le coup de l’Earth Simulator, qui avait dominé tous les classements entre 2001 et 2004.
Pour cela, le projet Kei Soku Keisanki a été planifié avec une cible à 10 pétaflops en 2012 et la firme Fujitsu comme contractant principal. Kei signifie 10¹⁶, soku peut se traduire par vitesse et keisanki, par ordinateur ; on obtient donc « l’ordinateur ayant une vitesse de 10 pétaflops » comme nom de projet.
Le « K Computer » (nom plus facile à utiliser) utilise le nœud d’interconnexion 6-D « Tofu » (débit de 100 Gio/s entre les nœuds) et les nouveaux processeurs SPARC64 VIII fx Venus en technologie 45 nm qui ont été conçus spécifiquement pour les besoins du calcul haute‐performance (et tournent, bien entendu, sous Linux).
Le Venus est une puce octo‐cœur pensée pour offrir un maximum de puissance tout en ayant une consommation la plus réduite possible. Fujitsu a choisi d’ajouter au jeu d’instructions SPARCv9, une extension nommée HPC-ACE : le nombre de registres est étendu à 192, pour les registres généraux (au lieu de 160), et à 256, pour les flottants (au lieu de 32) ; la puce est dotée de mécanismes matériels de synchronisation mémoire entre les cœurs et de nouvelles instructions SIMD pour accélérer les calculs les plus communs (voir ce fichier PDF).
Si on ajoute les contrôleurs mémoire intégrés et le cache L2 partagé qui est porté à 6 Mio, on obtient au final un beau bébé de 513 mm² et de 760 millions de transistors. La fréquence annoncée est de 2 GHz, pour une performance en pointe de 128 gigaflops et une consommation étonnamment réduite de 58 W.

Le K Computer prévoit d’associer environ 80 000 processeurs SPARC64 VIII fx (pour un total de 640 000 cœurs) avec une mémoire d’un péta‐octet. Le modèle de programmation est particulier, puisque les chercheurs japonais ont misé sur la parallélisation automatique des codes de calcul. La barrière mémoire entre les cœurs du processeur et le cache L2 partagé entre les cœurs permet de faciliter l’utilisation de ce paradigme d’utilisation nommé VISIMPACT (voir les pages 10 et 11 de ce fichier PDF).
On peut noter que la construction du K Computer n’est pas terminée, puisque seulement (!) 68 544 processeurs (soient 548 352 cœurs de calcul) ont été utilisés lors du test Linpack du classement Top 500. La consommation totale de la machine est de 9,89 MW ce qui donne une efficacité de 825 mégaflops/W.

La voie d’un processeur spécialisé dans le calcul haute‐performance est assez peu empruntée par les industriels qui préfèrent généralement utiliser des puces grand public moins coûteuses (fabriquées par Intel ou AMD). Sur le marché du très haut de gamme, on peut le comparer avec le POWER7 d’IBM qui atteint une performances en pointe de 256 gigaflops, mais dissipe 200 W. Certes, la puce d’IBM est plus généraliste et franchement surpuissante (Linus Torvalds l’a comparée à une chauve‐souris échappée de l’enfer), mais sa consommation est plus de trois fois supérieure.
Si on compare le Venus avec les processeurs graphiques modernes de type NVidia Fermi, alors on voit que la puce est presque aussi efficace, tout en étant incomparablement plus souple d’utilisation qu’un GPU. On note d’ailleurs un certain scepticisme des spécialistes à l’égard de l’utilité pratique réelle de ces machines hybrides CPU‐GPU, et plusieurs sessions de la conférence ISC sont consacrées à cette question.
Quoi qu’il en soit, il est fort probable que la domination du K Computer sera de courte durée, et que le calculateur Blue Waters (à base de POWER7) ou bien la machine Sequoia seront les champions de la prochaine édition.

Si l’on regarde la suite du classement, les trois machines suivantes, après le K Computer, sont exactement celles qui occupaient le podium de la dernière édition de novembre 2010. On retrouve donc le Tianhe-1A chinois et ses 2,57 pétaflops en pointe, suivi du Jaguar américain et du Nebulæ, seconde machine chinoise. En cinquième position, se place le supercalculateur japonais Tsubame avec 1,19 pétaflops. Il est particulièrement frappant de constater que sur les cinq premières machines de la liste, il y en a quatre en Asie et seulement une aux États‐Unis. Sur la liste complète, on passe de 83 machines asiatiques en novembre 2010 à 103 dans la liste de juin 2011 !
Le TERA-100 français du Commissariat à l’énergie atomique (CEA) reste dans le top 10, avec les 1,05 pétaflops qu’il avait obtenu lors de la trente‐sixième édition du TOP 500, mais il passe de la sixième à la neuvième place du classement. On peut aussi remarquer que Roadrunner, la toute première machine de l’histoire à briser la barrière du pétaflops, est seulement dixième. Sic transit gloria mundi.

L’analyse complète de la liste Top 500 montre que la puissance agrégée est maintenant de 58,88 pétaflops, alors qu’elle n’était que de 43,7 pétaflops, il y a six mois, et 32,4 pétaflops, il y a un an. Seulement 19 superordinateurs de la liste utilisent des cartes GPU (seulement 14, si on ne compte pas les puces Cell, très particulières).
On peut aussi noter que la machine qui est en dernière position était 262e de la liste, il y a seulement six mois, et que le calculateur le plus efficace est le prototype BlueGene/Q d’IBM avec 2 097 mégaflops/Watt. D’ailleurs, en termes d’efficacité, celle‐ci passe, en moyenne, à 248 mégaflops/Watt, alors qu’elle plafonnait à 195 mégaflops/Watt, il y a seulement un an. On pourrait se féliciter de ce gain très substantiel si la consommation brute moyenne des machines n’était pas passée de 397 à 543 kW sur la même période. On voit donc que les gains en efficacité ne sont pas utilisés pour réduire la consommation à vitesse égale, mais au contraire pour empiler toujours plus de processeurs et augmenter vertigineusement la vitesse de calcul.

Pour finir, si on s’intéresse à la répartition par système d’exploitation, on constate le premier recul de Linux depuis de longues années. Certes, la perte est modeste puisque l’on passe de 459 machines (91,8 %) à 455 (91 %), mais il faudra regarder attentivement ce point dans les prochains classements pour savoir s’il s’agit d’une tendance ou bien d’un accident statistique. Windows stagne toujours (6 machines, au lieu de 5) et les UNIX traditionnels remontent un peu, en passant de 19 à 23 machines.

  • # De l'écart relatif

    Posté par . Évalué à -7.

    Moi je vois pas une différence énorme entre passer de 5 à 6 machine (+20%) et passer de 19 à 24 machines (ce qui doit tirer dans le +21%). Mais bon, oui, windows çaylemal, alors admettre que Windows est mieux représenté, même légèrement, ça serait un drame.

    "The trouble with quotes on the internet is that it’s difficult to discern whether or not they are genuine.” Abraham Lincoln

    • [^] # Re: De l'écart relatif

      Posté par (page perso) . Évalué à 1.

      Absolu vs relatif…

      • [^] # Re: De l'écart relatif

        Posté par . Évalué à -2.

        Oui, mais tout de même, pour quelque chose de très peu représenter, arriver à progresser et non à perdre une machine me semble très différent. Un pro windowsien aurait dit que le système émerge sur les supercalculateurs. Je trouve bête de jouer au jeu inverse.

        "The trouble with quotes on the internet is that it’s difficult to discern whether or not they are genuine.” Abraham Lincoln

        • [^] # Re: De l'écart relatif

          Posté par . Évalué à -2.

          *représenté

          "The trouble with quotes on the internet is that it’s difficult to discern whether or not they are genuine.” Abraham Lincoln

    • [^] # Re: De l'écart relatif

      Posté par (page perso) . Évalué à 7.

      Enfin, des stats avec moins de 10 machines, ce n'est plus des stat !

      Il faudrait faire une analyse plus fine et voir la puissance de chaque OS par exemple...

      • [^] # Re: De l'écart relatif

        Posté par (page perso) . Évalué à 2.

        Enfin, des stats avec moins de 10 machines, ce n'est plus des stat !

        Pour l'instant on ne fait pas des stats mais de la lecture.

    • [^] # Re: De l'écart relatif

      Posté par (page perso) . Évalué à 9.

      Comme on étudie une population fixe (500 unités) il me semble plus intéressant d'étudier la part de l'effectif et ses variations plutôt que l'effectif lui-même. Il en ressort que 1% de l'effectif est perdu par Linux et gagné par les Unix traditionnels et que 0,2% de l'effectif est passé de Linux à Windows. Donc oui la part de Windows stagne.

      Il me semble que Windows est un OS ciblant les applications bureautiques et les loisirs, c'est absolument normal qu'il soit quasiment absent de ce genre de palmarès.

      • [^] # Re: De l'écart relatif

        Posté par (page perso) . Évalué à 7.

        l me semble que Windows est un OS ciblant les applications bureautiques et les loisirs, c'est absolument normal qu'il soit quasiment absent de ce genre de palmarès.

        Sauf que Microsoft a sorti une version dédiée aux clusters de calcul et nommée "Windows HPC". Ils avaient l'ambition de bouffer le marché en jouant sur la simplicité d'utilisation et la compatibilité avec les serveurs Windows déjà déployés...mais visiblement ça ne prend pas (du moins si on en juge par le Top 500).

        • [^] # Re: De l'écart relatif

          Posté par (page perso) . Évalué à 3.

          simplicité d'utilisation et la compatibilité avec les serveurs Windows déjà déployés

          Je pense que ces arguments ne s’adressent typiquement pas aux usagers de machines présentes dans le Top 500 qui nécessitent de toute façon un entretien particulier. Quant à savoir si ce Windows HPC marche réellement sur les plus petits clusters, je n’en ai aucune idée mais je ne l’ai jamais vu utilisé. Mais même s’il était massivement adopté, je ne m’attendrais pas à un effet perceptible dans le Top 500.

        • [^] # Re: De l'écart relatif

          Posté par . Évalué à 4.

          C'est une blague Windows HPC. C'est pas plus simple et les outils sont tout juste corrects. Mais surtout ils arrivent à le refourguer à personne. À tel point qu'ils étaient presque près à filer des licences gratos pour pouvoir dire qu'ils ont des utilisateurs. Les seuls qui ont achetés du HPC que je connais c'était pour virer tout le HPC et garder Windows par ce que c'était les licences les moins cher qu'ils pouvaient avoir.

          Du temps ou ça s'appelait encore Windows CCS et où j'ai eu des contacts avec le support/vente, je suis même pas sur qu'ils l'utilisaient eux même :p. Bon ça a peut être changé...

  • # Une chauve‐souris échappée de l’enfer

    Posté par (page perso) . Évalué à 5.

    C'est le titre (Bat out of hell) du premier album de Meat Loaf (ou du 2ème selon le Wikipedia anglophone).

  • # Fujitsu a repris le flambeau

    Posté par (page perso) . Évalué à 1.

    Hmm… bizarre, il semble pourtant que leurs premiers sparcs sont contemporains, voire antérieurs, à ceux de feue Sun.

  • # Un article sympa

    Posté par (page perso) . Évalué à 2.

    En suivant le commentaire de Linus à son origine, on tombe sur un dossier extrêmement intéressant sur l'architecture des Poulson, le prochain processeur d'Intel sur sa gamme Itanium:
    http://www.realworldtech.com/page.cfm?ArticleID=RWT051811113343

    Ça me rapelle x86-secret.com :-)

    • [^] # 3 mois plus tard seulement !

      Posté par . Évalué à 1.

      Remarquable que le Japon prenne la première place, trois mois après la triplette séisme/tsunami/accident nucléaire.

      • [^] # Re: 3 mois plus tard seulement !

        Posté par (page perso) . Évalué à 10.

        Oui mais bon ce genre de projet a une latence de plus de 5 ans je pense. Ce classement est donc la résultante de décisions de financement qui ont été prises bien avant les diverses calamités qui se sont abattues sur le pays.

    • [^] # Re: Un article sympa

      Posté par . Évalué à 3.

      Ça me rapelle x86-secret.com

      Ca me manque un peu. D'un autre coté, je n'ai plus le temps. Pas plus que les autres anciens membres. Mais, si ça t'intéresse, il reste un endroit, sur le forum de CanardPC, où on a rangé les ex x86-secret et ceux qui en font la demande. Bon, à moins de 5 posts par semaines en moyenne, c'est pas le grand délire, mais les débats ont conservés leur niveau technique.

  • # À quoi servent tous ces flops ?

    Posté par (page perso) . Évalué à 5.

    À quoi ça sert d'avoir des calculateurs sans arrêt plus puissants ? Est-ce que ça permet de lancer plusieurs calculs en même temps ? Que les calculs se terminent plus vite ? Que les calculs soient plus précis ?

    Selon la page suivante, le domaine d'application est inconnu dans 30% des cas, 15% sert à la recherche (euh, quel type de recherche ?), 7% à la finance, 5% pour des services logistiques, 5% à Internet, puis beaucoup d'autres choses.
    http://www.top500.org/stats/list/37/apparea

    Pour la finance par exemple, je suppose que plus le calculateur est gros, plus on peut avoir des prévisions fiables et plus loin dans le temps.

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

      Posté par (page perso) . Évalué à 5.

      Sur ces sites des divers centres de recherche français tu trouves pleins de choses passionnantes qui expliquent à quoi servent ces supercalculateur:

      http://www-hpc.cea.fr/
      http://www.genci.fr/
      http://www-ccrt.cea.fr/index.htm
      http://www.idris.fr/

      J'aime particulièrement ça mais ce n'est qu'un exemple: http://www-hpc.cea.fr/docs/projet-horizon.pdf

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

        Posté par (page perso) . Évalué à 0.

        Recherche scientifique dans les domaines non applicables en laboratoire de la science (typiquement l'astrophysique dont parle le pdf ou encore la cosmologie primordiale qui s'occupe des premiers prétendus instants de l'Univers), mais cela n'empêche que le projet SETI@home a besoin de nos procs pour les calculs.
        Alors ? N'y aurait-il pas assez de supercalculateurs dans le monde, des milliards de fois plus puissants que mon pauvre i3 ?

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

      Posté par . Évalué à 5.

      À faire tourner Emacs !

      Plus sérieusement, pas mal de ces machines servent pour faire tourner des simulations de plus en plus précises, et ça touche tous les domaines de la science où la simulation permet de compenser l'impossibilité d'observation : physique, astronomie, biologie, informatique, etc. Plein de petites expérieences, on arrive très vite à remplir des gros calculateurs.

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

      Posté par . Évalué à 10.

      À quoi ça sert d'avoir des calculateurs sans arrêt plus puissants ? Est-ce que ça permet de lancer plusieurs calculs en même temps ? Que les calculs se terminent plus vite ? Que les calculs soient plus précis ?

      Un peu tout ça à la fois. Par exemple, si tu fais des calculs de chimie théorique (mais ça doit marcher dans les autres domaines). Plusieurs chercheurs vont utiliser le même supercalculateur. Si la machine est très puissante, ils pourront lancer plusieurs calculs en même temps. Les calculs seront plus rapides (le résultat tombera après 3 semaines au lieu de 4 par exemple). Tu pourras également utiliser un modèle plus précis (mais plus gourmand en ressources) afin de décrire ton système et par conséquent tu parviendras à décrire ton modèle avec plus de précision. Voir la notion de Base_(chimie_quantique). Ces concepts sont peut-être plus facilement compréhensible en prenant une analogie avec la modélisation 3D. Si tu cherches à dessiner un scène en 3D avec Blender en 1h sur une machine peu puissante, tu la modélisera à l'aide de quelques polygones. Ton image ne sera pas très réaliste mais tu auras une idée de ce que tu cherches à représenter. Si tu as une machine beaucoup plus puissante, tu ajouteras beaucoup de polygones et ta scène sera beaucoup plus réaliste et crédible, en 1h également. En chimie théorique (quantique), c'est la même chose sauf que tu décris ta molécule avec des combinaisons linéaire de fonctions mathématiques appelées orbitales atomiques.

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

      Posté par . Évalué à 10.

      C'est pour générer des bitcoins !

      Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

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

        Posté par (page perso) . Évalué à 1.

        Pas de chance, pour ça il faut des opérations entières, pas à virgule flottante! :-D

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

          Posté par (page perso) . Évalué à 3.

          Je ne connais pas bien, mais en calcul arithmétique avancé on utilise des techniques de virgule flottante pour aller vite (pour les nombre entiers ou l'arith modulaire). Donc en fait, on peut probablement générer plus de bitcoins avec un supercalculateur. Ceci-dit la complexité du minage semble augmenter exponentiellement, dont le supercalculateur n'est pas super utile: très rapidement il produira des bitcoins au même rythme qu'un ordinateur normal.

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

            Posté par . Évalué à 10.

            Le fait que la vitesse de production baisse très rapidement n'est pas gênant si entre-temps, il a généré des milliers de bitcoins. La somme phénoménale engendrée permettra aux chercheurs de s'acheter un supercalculateur encore plus puissant deux pizzas.

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

      Posté par . Évalué à 10.

      Celui de Fujitsu a été commandé il y a 5 ans pour estimer la probabilité d'un accident nucléaire.

      La réponse vient de tomber, en moyenne, un accident aura lieu tous les -0.999999999 unités de temps.

      -----------------> [ ]

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

      Posté par (page perso) . Évalué à 5.

      Les modèles numériques sont très utilisés en recherche appliquée. Il y a quelques jours j'assistais à un petit exposé sur le sujet. Entre l'amélioration des algorithmes (facteur dominant) et l'amélioration des machines, certains problèmes sont résolus des millions de fois plus rapidement aujourd'hui qu'il y a 30 ans. (Sans compter le parallélisme!) Deux applications concrètes:

      • la météo: l'amélioration des méthodes a permis de faire des prédictions plus fines géographiquement (disons qu'on est passé de l'échelle du département à celle de la ville) plus fiables (en gros fiabilité de la prédiction à 24h de 0,9 contre 0,6 avant) et dans le temps (en gros fiabilité 0,5 pour la prédiction sur une semaine: on a remplacé les jours par des semaines).

      • l'industrie automobile: le coût unitaire du crash-test (comportement d'un prototype dans un accident) est de l'ordre de 2 millions d'euros, sans économie d'échelle les simulations numériques coûtent 10 fois moins cher pour la première et les simulations supplémentaires dans les 40 milliers d'euros: les simulations permettent de faire des crash-tests beaucoup plus utiles et le coût de ces essais dans la production d'un véhicule diminue.

      (Je ne me souviens sûrement pas très bien des chiffres --- pas pris de notes! --- mais les ordres de grandeurs relatifs doivent être à peu près corrects.)

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

        Posté par (page perso) . Évalué à 2.

        certains problèmes sont résolus des millions de fois plus rapidement aujourd'hui qu'il y a 30 ans

        Donc si j'ai bien compris, soit certains calculs étaient trop long pour être lancé il y a 30 ans, soit c'était possible mais avec une précision très inférieure à ce qu'on est capable de faire aujourd'hui.

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

          Posté par . Évalué à 4.

          Il y a 30 ans , en 1981 , nous croyions toujours que les anneaux de Saturne étaient au nombre de 4 , en ignorant leur composition, et la " découverte " du 4ème anneau avait juste 2 ans. :)
          Pioneer_11

          Sedullus dux et princeps Lemovicum occiditur

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

          Posté par (page perso) . Évalué à 3.

          C'est ça, mais il faut faire attention au sens du mot précision. Par exemple le métérologue veut estimer la fonction température T dans les prochaines heures. L'approximation A1 est plus précise que A2 signifie que A1 approche mieux T (plus proche des vraies valeurs en plus de points, approximation fidèle pendant plus lontemps).

          Ceci dit, il faut faire très attention aux algorithmes. Comme je le mentionnais dans mon précédent message ces améliorations pèsent plus lourd (nettement plus lourd) dans l'amélioration du temps de calcul que les progrès hardware. Avec les algorithmes d'aujourd'hui sur les machines d'hier on résout les mêmes problèmes des centaines de milliers de fois plus vite. Avec les algorithmes d'hier sur les machines d'aujourd'hui on est plutôt dans l'ordre de la dizaine de milliers.

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

      Posté par (page perso) . É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!

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

        Posté par (page perso) . Évalué à 2.

        Merci beaucoup pour ces précisions.

        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 ...

        Quoi ? Ca arrive qu'un ordinateur valant plusieurs millions d'euros ne fasse rien ?

        Comment se passe l'obtention d'un temps de calcul sur un calculateur ? Il faut coucher^Wêtre amis avec l'admin ?

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

          Posté par . Évalué à 3.

          « Comment se passe l'obtention d'un temps de calcul sur un calculateur ? Il faut coucher^Wêtre amis avec l'admin ? »

          D'habitude il faut payer…

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

          Posté par . Évalué à 3.

          Poses la question a certaines universités qui achètent un cluster de 256 machines, sans avoir d'administrateur au lieu de payer l'organisme publique dédiée...

          "La première sécurité est la liberté"

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

          Posté par . Évalué à 3.

          Quoi ? Ca arrive qu'un ordinateur valant plusieurs millions d'euros ne fasse rien ?

          Ben euh, en fait, oui. Parce que souvent les jobs soumis à l'ordonnanceur réclament une certaine puissance de calcul (i.e. un nombre minimum de nœuds, une certaine occupation mémoire, etc.), et donc au final, tu as facilement 25% de la machine qui en général n'est pas utilisée.

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

          Posté par (page perso) . Évalué à 5.

          Ca dépend comment on définit "ne rien faire". 0% d'utilisation, ça na jamais dû arriver sur une telle machine. Par contre, la charge ne doit tout de même pas être trop élevée, au risque qu'une simulation ne demande soudainement trop de puissance et mette l'ensemble de la machine en danger.

          Quand on soumet un job, on indique une borne supérieure d'occupation de la machine (temps de calcul total, nombre de noeuds réservés). Si mon job tente d'avoir plus que ce qu'il avait demandé, il sera terminé. Donc je demande toujours suffisamment, avec de la marge. Ce qui signifie que je n'utilise pas 100% de ce que je réserve...

          Pour ce qui est d l'attribution du temps de calcul, cela dépend: sur notre cluster interne, il suffit d'avoir un login. Mais nous avons des heurts réguliers avec le sysadmin... ou des utilisateurs qui peuvent se plaindre d'autres utilisateurs (ie: quelqu'un qui utilise ~25% de la machine depuis plusieurs mois, qui rale parce que je voudrais 50% de la machine pendant 2 semaines, et du coup je rale aussi...). Quand la machine est externe (pour nous, c'est le centre de calcul hautes performances Suisse), alors c'est plus compliqué. On nous demande par exemple de rédiger un projet plusieurs mois a l'avance, qui sera évalué par une commission, qui nous autorisera (ou pas). Et il m'est arrivé d'avoir des appels téléphoniques pour discuter d'un tel proposal et demander la justification sur mon calcul de la puissance demandée, de la durée, etc

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

            Posté par . Évalué à 1.

            Ce n'est vraiment pas utile de n'utiliser qu'une partie de la ressource réservée. Généralement, si on réserve 100 coeurs, il faut que le programme tourne sur les 100 coeurs.

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

              Posté par . Évalué à 2.

              Tu ne choisis pas toujours la façon dont les ressources sont allouées. Sur une machine de type BlueGene, tu es obligé de réserver un noeud complet, ce qui se monte à quelque chose comme 32 ou 64 coeurs minimum.

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

                Posté par . Évalué à 0.

                Cela veut donc dire que l'appli doit tourner sur un nombre de processus multiple de 32. Cela n'est pas très grave, dans la mesure ou tu veux tourner sur une blue genne, machine qui est (très) massivement parallèle.
                Vouloir faire tourner un programme de moins de 32 processus sur une blue gene, c'est un peu bizarre ...

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

                  Posté par . Évalué à 4.

                  A moins de connaitre la machine sur le bout des doigts, il est difficile de correctement optimiser une application pour un super-calculateur donné. Donc généralement on prend un noyau de calcul (la partie du calcul qui est la plus "chaude" et souvent la plus parallèle), et on essaie de l'optimiser a fond. Sauf qu'ensuite il faut tester qu'on a bien fait ce qu'il fallait. Et c'est la que ça coince : la partie test n'a pas besoin de 1000 coeurs, juste de quelques uns. Utiliser "trop" de coeurs ce ne serait pas grave quelque part, si le nombre d'heures allouées a une équipe n’était pas comptabilisée en fonction du nombre de coeurs. Par exemple, si j’achète 300 heures de calcul, et que le nombre minimal de coeurs a réserver est 100, alors je consomme 100h au minimum (1h / coeur). Même si je n'en ai pas l’utilité.

                  De plus comme le dit Mathias plus bas, parfois ton programme a juste besoin de beaucoup de mémoire, et pas forcement d'une puissance de calcul démesurées. Par exemple, le challenge Graph500 (qui est un parcours de graphe en largeur effectue en parallèle) dépend fortement de la quantité de mémoire disponible, ainsi que du nombre de bus mémoire différents. La puissance de calcul requise en elle-même est négligeable.

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

                    Posté par . Évalué à 0.

                    Oui, dans le cas d'un dépeuplement, les processeurs ne sont pas utilisés à fond, mais quand on parle "d'utilité", il ne faut pas compter que les processeurs.
                    Si on utilise la mémoire, c'est normal que le data center comptabilise l'occupation complète du noeud de calcul.

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

              Posté par (page perso) . Évalué à 2.

              sauf que certaines fois, la limite n'est pas liée à la puissance de calcul, mais à la mémoire disponible... Quand je simule le manteau neigeux, j'ajuste dynamiquement le nombre de couches en fonction des conditions physiques. Je ne peux donc pas prédire avec certitude de quelle quantité de mémoire je vais avoir besoin. Donc pour éviter que ma simulation ne se fasse terminer pour une simple raison d'insuffisance de ressources mémoire, je lui alloue plus de noeuds que vraiment nécessaire, afin d'avoir suffisamment de RAM disponible par noeud.

              Ensuite, je réserve évidement un temps de calcul supérieur à ce dont j'aurais vraissemblablement besoin, pour ne pas me faire terminer juste avant d'avoir finit la simulation...

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

      Posté par (page perso) . Évalué à 10.

      C'est pour calculer La Question.

  • # Perso j'en aurais bien besoin...pour optimiser mon perso dans un jeu ;p

    Posté par . Évalué à 1.

    Petit truc con mais honnêtement j'ai pas trouve de solution autre que de calculer toutes les solution possibles (enfin presque j'en élimine par avance mais au final pas assez pour mon tout petit quad core et 4 gig de ram)
    Définition du problème:
    Un personnage peut porter sur lui environ 20 objets magiques, et chacun de ces objets peut affecter 10 caractéristiques différentes.
    je fournis un filtre qui dit je veux tant dans cette categorie, tant dans celle la et ainsi de suite, chaque categorie vaut 'x' point donne moi toutes les combinaisons qui satisfont les besoins, (en les triant par leur valeurs)
    Bref le recherche d'un optimal sur une équation a plusieurs variables, variables qui ne peuvent prendre que des valeurs connues.
    Heh ben sans avoir l'air de rien...ca met a genoux la machine en un clin d'oeuil le nombre de combinaison possible explosant tres rapidement meme avec simplement un dizaine d'objet valable par emplacement (en meme temps rien que ca ca fait 10^20 possibilites a 'tester')
    Meme en eliminant en cours de routes les combinaisons qui ne peuvent pas arriver pas a terme.

    Des que le filtre demande et relativement 'moyen', impossible d'arriver a un resultat, alors meme que je sais qu'il y a pas 36 solutions possible.
    Cependant certaines solutions sont 'suprenantes' et contre intuitived (ie:un objet qui a l'air pourri et qui fait qu'une seule chose peut tres bien etre la solution)

    Je pense qu'ils doivent faire le meme genre de truc en finances..mais buen sur..pas avec le meme type de variables.

    • [^] # Re: Perso j'en aurais bien besoin...pour optimiser mon perso dans un jeu ;p

      Posté par . Évalué à 1.

      Des algo de type Monte-Carlo ne pourraient pas te convenir avant de demander une machine à X milliers de core pour faire un brute force ?

    • [^] # Re: Perso j'en aurais bien besoin...pour optimiser mon perso dans un jeu ;p

      Posté par . Évalué à 3.

      Ce genre de problème se règle souvent par des algorithmes heuristisques, genre algorithme génétique.

      Rapidement:un algorithme génétique reproduit la sélection naturelle. Tu as une population d'individu (ici un ensemble d'objet) et tu mesures leurs performances (ici grâce à tes filtres). Ensuite les plus mauvais sont "éliminés" et les meilleurs sont croisés pour obtenir une nouvelle génération. Des mutations aléatoires sont aussi ajoutées pour éviter de tomber trop vite dans un optimum local. Les individus de cette nouvelle génération sont ensuite évalués, et ainsi de suite.

      Quand tu arrêtes le calcul, tu n'auras pas la garantie d'avoir trouvé une solution optimale, mais tu auras une solution "pas mal". De plus, c'est très souple en fonction des ressources de calcul disponible. Dans ce genre d'algorithme, tu joues sur les paramètres (nombre de générations, taille de population, probabilité de mutation) pour trouver le meilleur compromis entre temps de calcul et qualité du résultat.

      Si le problème n'est pas adapté ou si le truc est mal codé, cela peut ressembler à une recherche complètement aléatoire, mais souvent cela donne de bons résultats. Dans ton cas, sélectionner des solutions déjà pas mal et les combiner pour voir si cela améliore, ainsi que changer juste un objet aléatoirement, me semble assez pertinent.

      • [^] # Re: Perso j'en aurais bien besoin...pour optimiser mon perso dans un jeu ;p

        Posté par . Évalué à 3.

        je pense que je fais un peu de tout ca en donnant un poids a certaines valeurs (par exemple le charisme même si il est utile, vaut moins que de la force) ce qui permet d’éliminer certaines solutions même si elles sont valides.
        Aussi je peux ignorer certaines stats pour trouver les objets les plus 'pertinents' a tester.
        Mais le but est vraiment de trouver LA solution idéale.
        Parce que sinon et c'est quand meme assez impressionnant, les joueurs arrivent globalement a des résultats proches du maximum en tres peu d'essai/calculs parce qu'ils arrivent a 'peser' une solution globale en ne sélectionnant que les quelque objets ayant le plus de 'poids' de base. (Se faisant, ils passent souvent a cote de LA solution idéale d'ailleurs)
        J'ai plus code la chose par curiosité intellectuelle,mais c'est impressionnant a quel point un probleme a priori 'simple' (enfin surtout d'un interet tout relatif) peut mettre une machine quand meme plutot costaud a genoux. Et puis ca se parallélise a merveille.
        Il m'a ete aussi intéressant de constater que des fois il fallait mieux faire 'plus' de calcul mais ne pas avoir de verrou. Et pas qu'un peu.
        Ce qui rejoint un commentaire qui disait qu'il valait souvent mieux améliorer l’algorithme que la machine (j'ai pu améliorer la vitesse de calcul en rajoutant des tests a un endroit, mais qui font que j'ai moins de solutions a calculer ensuite (donc un gain de temps largement supérieur au temps pris par les tests supplémentaires précédents)
        Enfin tout ca pour dire que ce genre de machine pourrait bien me servir ;p (mais que je saurais meme pas ou m'adresser)

    • [^] # Re: Perso j'en aurais bien besoin...pour optimiser mon perso dans un jeu ;p

      Posté par . Évalué à 6.

      Un personnage peut porter sur lui environ 20 objets magiques, et chacun de ces objets peut affecter 10 caractéristiques différentes.

      Paf. Tu viens de décrire le problème du sac à dos. Le problème étant NP-complet, tu ne peux sans doute qu'espérer obtenir une bonne heuristique, pas très éloignée de la solution optimale. L'article de Wikipedia donne quelques pistes (utilisation d'algorithmes gloutons avec tri décroissant en fonction des poids des objets à mettre dans le sac, etc.).

Suivre le flux des commentaires

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