Journal BlueGene/P...enfin le petaflop !

Posté par  (site web personnel) .
Étiquettes :
0
27
juin
2007
Enfin ! Depuis le temps qu'on en parle et que les performances des super-ordinateurs s'en rapprochent de plus en plus, voici enfin le premier monstre qui atteint le petaflop (un million de milliards d'opérations à virgule flottante par seconde).

C'est IBM qui a tiré le premier avec la version 2 de son architecture BlueGene. En passant de 410 teraflops en pointe pour la version 1 (BlueGene/L) à exactement un petaflop en pointe pour cette nouvelle version BlueGene/P. Le bond est conséquent (+144%) et on note que la consommation augmente beaucoup moins puisqu'elle passe seulement de 1,7 MW à 2,3 MW (+36%).

La page http://www-03.ibm.com/servers/deepcomputing/bluegene.html présente cette seconde version mais le plus intéressant est évidemment la comparaison entre les deux machines.
L'architecture BlueGene avait fait le pari d'une densité maximum des noeuds de calcul en abaissant la fréquence des processeurs (700 MHz) afin d'avoir une consommation électrique réduite et peu de dégagement de chaleur. BlueGene/P poursuit cette philosophie en doublant le nombre de cores (4 au lieu de 2) et en augmentant faiblement la fréquence (850 MHz).
Le cache L3 est également multiplié par deux et la RAM par quatre.

Comparaison : http://www-03.ibm.com/servers/deepcomputing/bluegene/bgcompa(...)

Il est à noter que cette capacité d'un petaflop est uniquement atteinte en pointe (autrement dit les applications réelles ne parviennent jamais à l'atteindre). Cela n'invalide donc pas toute la phase de recherche hpcs (High Productivity Computing Systems) initiée par la DARPA depuis plusieurs années [http://linuxfr.org/2003/11/21/14642.html] afin d'obtenir des machines ayant une capacité petaflop soutenue.

Et maintenant quel est le rapport avec Linux me direz-vous ?
C'est simple : Linux est utilisé presque partout dans cette machine !
Certes les noeuds de calcul fonctionnent avec un noyau propriétaire extrêmement léger (réduit à sa plus simple expression) mais les noeuds d'entrée/sortie utilisent Linux. Les noeuds de service ainsi que le front end se basent quand à eux sur Suse Linux SLES 10.

Je crois que nous pouvons donc adopter fièrement le slogan suivant: Linux, le premier petaflop OS !
  • # La grande question...

    Posté par  . Évalué à 9.

    Est-t-il Vista Ready ? ^o^
  • # Troll de compet'

    Posté par  . Évalué à -1.

    Mouai, mais bon, le petaflops en simple précision ...
    • [^] # Re: Troll de compet'

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

      Gni ?
      Les CPU travaillent en double précision (c'est bien le moins pour un super-ordinateur destiné aux applications scientifiques).
      • [^] # Re: Troll de compet'

        Posté par  . Évalué à 0.

        Est-ce que tu a un lien sur la machine a 410 TeraFlops, parce que la première du top500 et a seulement 367 Teraflops en pic ?

        Sinon la mahine du CEA a fait un flop dans le classement.
        • [^] # Re: Troll de compet'

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

          Ben c'est le lien que j'ai donné dans le journal : http://www-03.ibm.com/servers/deepcomputing/bluegene/bgcompa(...)

          Je pense que la différence entre les 370 et le 410 c'est justement le delta entre puissance théorique et puissance réelle.

          Quand à la machine TERA du CEA elle est basée sur l'architecture Itanium d'Intel (des montecito double-coeurs) et comme Itanium est un peu à la ramasse cela explique la domination d'IBM.
          Maintenant il parait que le CEA a vraiment fais le choix de cette architecture pour des raisons techniques (et pas pour les beaux yeux de Bull). Ce serait une histoire de granularité de la puissance : pour le type de calcul du CEA (simulation nucléaire) il faudrait des CPU puissants en moins grand nombre alors que BlueGene propose beaucoup de CPU moins puissants.

          Si un spécialiste pouvait nous confirmer ce point ?
          • [^] # Re: Troll de compet'

            Posté par  . Évalué à 5.

            Je ne suis pas spécialiste, mais la principale différence entre BlueGene et Tera-10 c'est le réseau d'interconnexion Quadrics, qui fait que certains codes fortement parallèles (beaucoup de MPI) vont être plus rapides sur Tera-10 que sur BlueGene (en simplifiant), même si la puissance CPU pourrait faire penser le contraire. Pour ceux que ça intéresse, voici un dossier de presse (malheureusement de janvier 2006) :

            http://www.cea.fr/content/download/3409/16810/file/Tera10_ja(...)

            Un calculateur, ce n'est pas seulement la puissance CPU, mais aussi
            le débit du réseau,
            la latence du réseau,
            le stockage,
            la mémoire par CPU,
            le cache par CPU,
            la scalabilité,
            la qualité du refroidissement,
            la durée de vie des n½uds,
            la tolérance aux pannes,
            sans oublier l'efficacité des compilateurs, des bibliothèques...
          • [^] # Re: Troll de compet'

            Posté par  . Évalué à 3.

            Si un spécialiste pouvait nous confirmer ce point ?

            Ca c'est l'explication technique qui explique le resultat du choix. Le choix c'est:
            "Salut tout le monde. J'ai un benchmark qui represente ce que je veux faire. Je veux la solution la moins chere qui atteint le score de xxxx. Que le meilleur gagne."

            Voila. C'est BULL qui a remporte le concours.
        • [^] # Re: Troll de compet'

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

          Sinon la mahine du CEA a fait un flop dans le classement.

          1 flop seulement ? C'est Enormément Ancien ;-).

          Un jour libre ?

      • [^] # Re: Troll de compet'

        Posté par  . Évalué à 4.

        Pas forcément d'accord.
        J'ai un collegue malin qui pour les codes ( scientifique ) pour lesquels il à besoin de rapidité travaille uniquement avec des entiers.

        Son argument est le suivant
        Mon instrument est precis a 0.2 ns près donc si je multiplie par 5 j'en ait plus rien à foutres des chifres après la virgule vu que de toute façon ils n'ont aucun sens.

        Bref tout dépend du but de ton application
        si c'est pour faire une simulation alors oui il faut travailler au sens des doubles car la précision est importante.
        Par contre si c'est pour travailler avec des données ça sert a rien d'être plus precis que la sonde qui mesure, au contraire c'est gaspiller de la puissance.

        Après je ne me suis jamais poser la question de l'uttilité de ce genre d'astuce donc j'en profite est ce qu'un calculateur standard ( par exemple un Xeon où un Opteron ) est plus rapide avec des entiers qu'avec des flottants ou des doubles
        • [^] # Re: Troll de compet'

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

          Mon instrument est precis a 0.2 ns près donc si je multiplie par 5 j'en ait plus rien à foutres des chifres après la virgule vu que de toute façon ils n'ont aucun sens.

          C'est en gros le principe du calcul en virgule fixe, la problème dans ce cas, c'est que généralement les chiffres après la virgule on ne s'en fout pas. Il y a souvent des calcul à faire sur les chiffres sortis par l'instrument, et donc si on ne prévoit pas de la marge, du genre multiplier par 50 ou 500 au lieu de 5, on se retrouve vite avec de grosse erreurs d'arrondis difficiles à débugger.

          Deuxième problème, les économie ne sont plus aussi énormes qu'avant. Les calcul flottants sont devenus très rapide, et il ne faut pas oublier que le calcul en virgule fixe nécéssite en permanence d'ajuster les résultats. Par exemple la multiplication demande en fait de faire une multiplication et une division. Pour multiplier A et B en vigule fixe avec une precision de 100 il faut faire A * B / 100 en faisant gaffe aux débordements.

          A part pour des cas spécifiques, l'utilisation de la virgule fixe est de moins en moins justifiée et conduit le plus souvent à des programmes pas beaucoup plus rapide dans le meilleur des cas, mais par contre beaucoup plus buggés.

          Par contre si c'est pour travailler avec des données ça sert a rien d'être plus precis que la sonde qui mesure, au contraire c'est gaspiller de la puissance

          Pour stocker la mesure, en effet il n'y a pas besoin d'une plus grande précision, mais pour faire du calcul scientifiques dessus tu as interet à disposer d'une précision maximale si tu veux que tes calculs soient justes. En plus sur les processeurs actuels la différence en performance entre simple et double précision et minimime.
          • [^] # Re: Troll de compet'

            Posté par  . Évalué à 2.

            Les calcul flottants sont devenus très rapide

            Et y a meme certains CPU qui n'ont pas de multiplication en entier et tu dois faire une conversion en flottant avant...
            • [^] # Re: Troll de compet'

              Posté par  . Évalué à 1.

              Merci des explications
              Je range donc cet astuces au rayons des souvenirs des vieux briscard ayant connus les cartes perforées.
  • # .

    Posté par  . Évalué à 3.

    J'ai du mal à me rendre compte. Y'a un matheux qui pourrait nous estimer combien de temps il faut pour casser un RSA 56 bits avec ce genre de machines ? Et avec un PC de bureau ordinaire de nos jours ?
    • [^] # Re: .

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

      Je ne suis pas spécialement matheux mais je peux essayer de donner un début de réponse...

      La complexité de factorisation d'un nombre quelconque est polynomiale, ce qui veut dire que grosso-modo, voire à bisto de nas ou encore peu ou prou, si on considère que la taille d'un nombre n est t, le temps de factorisation de ce nombre sera de e^t, à savoir que plus le nombre sera grand, plus sa durée de factorisation sera grande exponentiellement. La factorisation d'un nombre est une méthode de décryptage d'un message codé via RSA.

      Selon l'article de Wikipedia : http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman#S.C3.A9cu(...) ,
      On peut trouver la factorisation d'une clé de taille inférieure à 256 bits en quelques heures sur un ordinateur individuel, en utilisant des logiciels déjà librement disponibles.


      Sachant qu'une clé RSA 56 Bits est plus petite qu'une clé RSA 256 bits, j'en déduis deux choses :
      - Il faut peu de temps pour casser une clé RSA 56 bits avec un ordinateur individuel, même sous KDE dans une appli écrite en Javascript et lancée sous Firefox
      - J'ai répondu à coté de la plaque en ne comprenant pas le sens de la question de sieur snt

      Selon ces déductions, je me permet d'élaborer l'hypothèse suivante : Si quelqu'un essaie de casser une clé RSA 56 bits avec BlueGene/P, je suppose que ca va prendre peu de temps. La notion "peu" étant vague, je me permet d'envisager que la clé serait classée plus rapidement que le temps qui a été nécessaire à sa création. Voire même que le code serait cassé avant même que le message ne serait encodé avec ladite clé.

      Sachant, toujours selon Wikipedia que il est couramment recommandé que la taille des clés RSA soit au moins de 2048 bits., je suppute que même BlueGene prendrait un temps certain, pour ne pas dire un certain temps à décrypter une clé RSA 2048 bits. Ce temps étant suffisamment long pour qu'on n'ait pas le temps de le voir venir, la comparaison avec le temps nécessaire pour qu'un ordinateur de bureau classique décrypte une clé RSA 2048 bits serait grandes, certes mais tout aussi inutile car comparer deux grands nombres ne sert pas à grand-chose dans le cas qui nous intéresse.

      Je terminerai donc sur un regret, celui de ne pas avoir fait avancer le débat et me replongerai derechef dans ma recherche de la pierre philosophale que j'ai paumé dans mon dernier déménagement...
      • [^] # Re: .

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

        A mon avis la question initiale ne portait pas sur une clé RSA de 56 bits (comme cela a été écrit sans doute par erreur) mais sur une clé d'un algo symétrique (type DES) de 56 bits.
      • [^] # Re: .

        Posté par  . Évalué à 6.

        Si si, tu as fait avancer le débat :
        ton post est juste et on est près de la conclusion : (si ce n'est que la complexité de factorisation d'un nombre n'est pas, a priori, polynômiale mais bien non polynômiale ;-) ) si n est de taille t le temps de factorisation de n est de l'ordre de e^t.

        (pour ceux qui en veulent un peu plus : voir un exemple de complexité pour le meilleur algo connu sur http://fr.wikipedia.org/wiki/Crible_général_de_corps_de_nombres_(GNFS) sachant que log(n) est peu ou prou le nombre de bits de n)

        Id est : augmenter la taille d'un bit multiplie le temps de calcul par une constante.

        On va dire que cette constante est 2 (ça serait plus, avec la complexité précédente, un peu plus de 1/3*64/9*1 soit e^2.37 = 10,7 voir plus bas) :

        Alors augmenter la taille de 256 bits à 2048 multiplie le temps de calcul par 2^(2048-256) > 10^306 ! Soit plus, bien plus de 10^306 heures avec un PC actuel s'il met une heure pour calculer une factorisation de 256 bits.

        Un PC actuel fait 1 GigaFlop mettons (1 GHz, bon c'est pas tout à fait vrai pour les flottants, et de toutes façons la factorisation ne fait appel qu'à des entiers, mais bon on calcule à la louche, hein ;-) )
        1PetaFlop/1GigaFlop = 10^15Flop/10^9Flop = 10^6 ; le Blue Gene mettra 10^6 fois moins de temps que le PC de base pour faire la décomposition de la clef RSA, soit 10^300 heures !
        (à titre de comparaison 1 an fait un peu moins de 10^4 heures... ça fait pas beaucoup à côté ! )

        Bon évidemment c'est sous réserve que personne ne trouve entre temps d'algo plus rapide/de vice dans le principe/ne construise d'ordinateur quantique


        Explication du 2.37 : en gros il faut a*e^{(64/9t)^{1/3}} opérations pour un nombre de logarithme t (la constante a vient du grand O, et on néglige la variation du log(log(n))) ; si t->t+1 (on augmente la taille de n, égale ici à son logarithme, de 1) on passe au temps a*e^{ (64/9 (t+1))}{1/3}} à peu près égal (développement limité à l'ordre 1 du terme à a*e^{(64/9t)^{1/3}+(1/3)*(64/9)*1} si t grand devant 1. d'où une multiplication du temps par e^(1/3)*(64/9)*1 d'où le résultat)

        Note : résultats bien entendu non garantis ;-) à vérifier si quelqu'un passe par là ?
  • # un petaflop en continu

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

    D'après http://hardware.slashdot.org/article.pl?sid=07/06/26/1517208 "IBM's Blue Gene Runs Continuously At 1 Petaflop" (le Blue Gene à 1 petaflop en continu) qui fait référence à un article de zdnet [http://www.zdnet.com.au/news/hardware/soa/IBM-s-Blue-Gene-pa(...)] la capacité réelle serait plutôt de 3 petaflops en pointe (mais effectivement jamais atteinte en continu par ces feignasses d'applications ;-) ) et il est _prévu_ pour fonctionner à 1 pétaflop en continu.

    Perso, j'aime bien ce commentaire [http://hardware.slashdot.org/comments.pl?sid=241601&cid=(...)] listant des applications de CFD (Computationnal Fluid Dynamics) que ce soit pour la météorologie ou les calculs industriels, parlant de MPI (Message Passing Interface) ou OpenMosix ou Kerrighed pour la parallèlisation de traitements, les traitements d'images 2D ou 3D (raytracing)...
    Sinon, ya sans doute des utilisations en mécanique quantique envisageable ?
    • [^] # Re: un petaflop en continu

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

      Je pense que Slashdot se gourre car la page d'IBM indique bien 1 petaflop en pointe.
      • [^] # Re: un petaflop en continu

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

        ouais c'est le point que je n'ai pas bien précisé (j'avais pourtant mis du souligné autour de _prévu_ ) :
        - à terme, dans le futur, d'après zdnet, il est conçu pour 3 petaflop en pointe
        - à terme, il est conçu pour plus de 1 petaflop atteint en continu (la métrique étant sans doute le sens du vent :) de manière plus réaliste la capacité des applis à réclamer de la CPU).

        Ce qui est ballot tout de même, c'est que la métrique semble rester la CPU alors que dans mon boulot c'est plutôt la RAM le facteur limitant : l'informatique de gestion (oops pardon, l'information technology) c'est beaucoup beaucoup de données à traiter (et des développeurs persuadés que tout charger en mémoire est la bonne manière d'optimiser /o\). Côté CPU, si plus de 20%-40% sont utilisés sur la journée en moyenne c'est que l'appli est consommatrice (et bien développée) ou alors qu'elle traite du XML :/.
        Bien sûr, au niveau du système d'information, de ce que j'en ai vu, c'est malheureusement une logique "batch" qui perdure plutôt que d'essayer de lisser la charge par du fil de l'eau...

        Mais bon, le coeur de cible de ces monstres semble plutôt être le calcul en force, l'indicateur de CPU n'est pas forcément inintéressant... (quoique traiter de gros volumes d'informations ne devrait pas trop leur faire peur si les I/O suivent).
  • # Attention, Plan9 !

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


    Linux est utilisé presque partout dans cette machine !
    Certes les noeuds de calcul fonctionnent avec un noyau propriétaire extrêmement léger (réduit à sa plus simple expression) mais les noeuds d'entrée/sortie utilisent Linux. Les noeuds de service ainsi que le front end se basent quand à eux sur Suse Linux SLES 10.


    ... et IBM travaille à porter Plan9 sur chaque noeud de Blue Gene.
    Et pourquoi choisir Plan9 me demanderiez vous ?
    Simple : ces monstres s'apparentent de plus plus à des systèmes distribués dont chaque noeud est en étroite communication via des liens réseaux dédiés. Il est donc nécessaire, afin de profiter au mieux de ce type d'architecture, de disposer sur chaque noeud (noeud de calcul et d'entrée-sortie) d'un OS qui repose sur une architecture distribuée et qui offre donc l'opportunité aux services sur les noeuds de pouvoir aussi être répartis. C'est ce que permet justement Plan9 avec son protocol 9P2000.

    Est-ce le signe d'un renouveau pour Plan9 ?
    (il existe déjà une distribution de Plan9 : Inferno, vendu par Via Nuova
    http://www.vitanuova.com/
    )


    Quelques liens pour en savoir plus :
    http://domino.research.ibm.com/comm/research_projects.nsf/pa(...)
    http://www.graverobber.org/

    et un article sur slashdot qui en a parlé :
    http://slashdot.org/article.pl?sid=07/06/19/1215253&from(...)
    • [^] # Re: Attention, Plan9 !

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

      Mais est-ce que 9P2000 n'est pas présent aussi dans le noyau Linux ?
      il me semblait bien avoir vu passer son inclusion lors de la lecture du changelog d'un des noyaux précédents non ?

      Si 9P2000 est inclu je ne vois plus trop l'intérêt de Plan9 alors que Linux est quand même bien mieux testé et solide.
      • [^] # Re: Attention, Plan9 !

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

        9P2000 (ou v9fs) est juste un FS parmi d'autre rajouté dans Linux pour profiter de ce système de comm.
        9P2000 est la brique de base sur laquelle est contruit Plan9 : en gros dans Plan9 tout est service et le système de fichier sert d'annuaire de ceux-ci. Même les pilotes : si je me souviens bien, par exemple, un pilote sur un Plan9 distant en kernel-space peut service sur un Plan9 local en user-space.
        Il faut savoir que Plan9 a été conçu par le père fondateur d'Unix, Ken Thompson, avec d'autres personnes, en vue de pousser jusqu'au bout les concepts même d'Unix ; en gros de faire ce qu'aurait dû être Unix. Et 9P2000 est ce qui permet à Plan9 d'atteindre cet objectif.
  • # Mauvais slogan

    Posté par  . Évalué à 4.

    Je crois que nous pouvons donc adopter fièrement le slogan suivant: Linux, le premier petaflop OS !


    Il ne vaudrait mieux pas pour Linux que cette phrase devienne son slogan. Un argument pour décider les grosses organisations ayant besoin de grosses puissances de calcul, oui, mais pour intéresser >99% de la population informatique mondiale, il vaut mieux ne pas balancer un slogan qui enfoncerait grandement l'idée que Linux, c'est pour les geeks bien techos dans les têtes.
    • [^] # Re: Mauvais slogan

      Posté par  . Évalué à 5.

      ah, oui, les logiciels people-ready avec des gens bizarres et des bandes-son qui me rappellent les émissions bien populaires de tf1/m6

      je préfère encore passer pour un geek bien techos, merci
      • [^] # Re: Mauvais slogan

        Posté par  . Évalué à 2.

        Parce que bien sûr, dans la vie informatique, il n'y a que le premier petaflop OS ! et Êtes-vous People Ready ? comme possibilités de slogan.

        Fais un effort, Think different :P.
  • # Et Nvidia/ATI ?

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

    Nvidia propose depuis peu CUDA.
    CUDA ( http://www.hardware.fr/articles/659-1/cuda-apercu.html ) est une sorte de compilateur/API au dessus de C permettant de refiler tous les calculs en flottants (matriciels, etc...) à la carte graphique, offrant la possibilité d'exploiter au mieux son parallélisme.

    Le GPU G80/NV50 est doté de 128 unités de calculs. La plupart sont capables d'exécuter des additions et multiplications flottantes, ou des instructions du type FMAD qui effectue une multiplication plus addition (idéal pour les multiplications de matrices).
    Certaines unités d'exécution proposent des instructions plus puissantes comme sinus, cosinus, racine carrée, etc...
    16 "multiprocesseurs" contiennent chacun 8 processeurs et 8 ko de mémoire cache.

    Pour le moment, CUDA ne permet de n'atteindre qu'une précision de 32 bits sur les flottants, mais les 64 devraient arriver bientôt.
    De plus, la circuiterie interne des GPU n'est pas compatible IEEE


    CUDA nécessite un driver spécifique disponible pour plusieurs OS dont Linux qui est ici bien servi.
    Il propose une lib contenant des opérations pour FFT et de l'algèbre linéaire de base. Il y a même un plugin Matlab !
    Bien évidemment la lib permet aussi d'injecter des résultats de calculs dans un rendu 3d.
    C'est censé fonctionner avec GCC, mais j'ai pas testé, donc à vérifier.
    http://developer.nvidia.com/object/cuda.html


    De plus, Nvidia s'apprête à sortir TESLA. Tesla http://www.nvidia.com/object/tesla_computing_solutions.html est un serveur lame intégrant plusieurs GPU et permettant, grâce à Cuda, d'exécuter toute sortes de calculs.
    Il faut voir qu'un G80 (le processeur de la Gforce8800) atteint 300 Gflops, en calculs très spécialisé certes, mais 300 Gflops pour tout ce qui est calculs physique, génétique, réseau de neurones, etc...
    Cette machine offre une infrastructure pour gérer le parallélisme.

    Bref, je me demande si ce genre d'approche ne va pas séduire pas mal d'industriels, parce que 300 Gflops par GPU, il n'en faut que 3000 pour atteindre le pentaflop...

    NB : il y a aussi CTM d'ATI mais il parait que c'est assez difficile à utiliser.
    http://ati.amd.com/companyinfo/researcher/Documents.html

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

    • [^] # Re: Et Nvidia/ATI ?

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

      Comme tu as l'air au courant, ce genre de calcul est-il accessible via nos cartes graphiques grand public ?

      Le projet nouveau pourrait d'un coup prendre une nouvelle envergure ;-) [http://nouveau.freedesktop.org/wiki/Accueil-fr#A_propos]. Tiens d'ailleurs TiNDC est sorti : http://nouveau.freedesktop.org/wiki/Nouveau_Companion_22 (bientôt la traduction française j'espère).
      • [^] # Re: Et Nvidia/ATI ?

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

        Comme tu as l'air au courant, ce genre de calcul est-il accessible via nos cartes graphiques grand public ?

        Oui, bien sûr, mais pour les cartes récentes, muni du driver adéquat.

        Le projet nouveau pourrait d'un coup prendre une nouvelle envergure ;-) [http://nouveau.freedesktop.org/wiki/Accueil-fr#A_propos].

        Effectivement c'est techniquement possible, mais en fait non, il me semble, car NVIDIA fourni un sdk sous Linux.
        Le problème est que ça n'offre la possibilité d'utiliser la carte graphique pour calculs que si le driver CUDA est installé.
        Ca pourra peut être servir pour la rétro-ingénieurie ?

        « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Je comprends pas

    Posté par  . Évalué à 2.

    Ils utilisent plusieurs processeurs en parallèle c'est ça ? Mais pour faire une simple boucle, est-ce que c'est utile ? Comment est-ce qu'il peut être plus rapide qu'un pentium 3GHz sur une simple boucle (ex : incrémenter x de 1 à 100000...) ?
    • [^] # Re: Je comprends pas

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

      Ça n'est pas plus rapide sur une simple boucle, mais ce n'est pas l'objectif. Ce genre de machine est faite pour faire du calcul massivement parallelisable. Par exemple si chaqune des itérations de ta boucle est indépendante des autres tu peux les faire sur des machines séparées et donc si tu as 100000 itération et 1000 coeurs , au coup de transfert près ça va 1000 fois plus vite. Et si le cout de transfert est négligeable par rapport au temps de calcul de chaque itération, c'est valable.

      Dans la réalité ce n'est pas aussi simple, mais l'idée c'est consiste souvent à diviser ton problème en plein de petites tache que différent coeur peuvent résoudre et ensuite réunir les ptites réponses pour obtenir le résultat final.

      Les systeme en peer-to-peer de type seti@home sont adaptés quand le cout de transfert est vraiment négligeable par au temps de calcul, car c'est le genre d'architecture ou les noeuds ne peuvent communiquer entre eux.

      Les clusters comme présentée ici sont utiles notemment quand les noeud doivent pas mal communiquer entre eux. À ce moment la programation peut devenir très complexe et la mise au point des algos difficile. Il est très dur de tirer le maximum de ce genre d'architecture et tous les problème ne si prettent pas.

      A une echelle moindre on peut imaginer des ordinateur personel avec 4 coeur par exemple. Pour un jeux, il y a un coeur qui est dedier à la phisique, un au graphisme, un pour les IA et un pour l'interaction avec le joueur.
      Ce qu'il faut voir c'est que c'est le même principe, on a un gros problème à résoudre que l'on divise en plus petit morceaux suffisament indépendants pour etre éxécutés sur différent coeurs.
    • [^] # Re: Je comprends pas

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

      Tu poses le problèmes de bases du parralèlisme. Avec 2 cpus, on ne peut pas accélérer un truc trop petit. Par contre, si tu as 1000 boucles à faire, tu peux partager le boulot.

      En plus dans le cas de ta boucle, c'est itératif donc non paralélisable, il faudrait voir son utilité pour faire mieux;

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

Suivre le flux des commentaires

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