<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Record | Dr. Goulu</title><link>https://drgoulu.com/tags/record/</link><atom:link href="https://drgoulu.com/tags/record/index.xml" rel="self" type="application/rss+xml"/><description>Record</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Sun, 16 Dec 2012 00:00:00 +0000</lastBuildDate><image><url>https://drgoulu.com/media/icon_hu_eee4a95885829ab2.png</url><title>Record</title><link>https://drgoulu.com/tags/record/</link></image><item><title>Encore plus vite que le vent</title><link>https://drgoulu.com/2012/12/16/encoreplus-vite-que-le-vent/</link><pubDate>Sun, 16 Dec 2012 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2012/12/16/encoreplus-vite-que-le-vent/</guid><description>&lt;p&gt;Vous savez peut-être que j&amp;rsquo;ai créé il y a un peu plus de 5 ans un
, désormais principalement animé par d&amp;rsquo;autres passionnés. Depuis 2007, le 
 a été franchi par des engins très différents, allant du kitesurf à
. Mais le 24 novembre 2012, le record de vitesse pure a été pulvérisé par 
, qui a
de moyenne sur 500m
&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 480px; width: 100%;"&gt;&lt;a href="https://www.youtube.com/watch?v=dokkkqBcyPQ" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2012/images/a7129de12e34dcca048517440327680e_hu_86d1df533c9d3cb5.webp" srcset="https://drgoulu.com/posts/2012/images/a7129de12e34dcca048517440327680e_hu_86d1df533c9d3cb5.webp 320w, https://drgoulu.com/posts/2012/images/a7129de12e34dcca048517440327680e_hu_bbe63e8d3621adee.webp 480w, https://drgoulu.com/posts/2012/images/a7129de12e34dcca048517440327680e_hu_c20604f3e2b9ec85.webp 480w" sizes="(max-width: 640px) 100vw, 480px" alt="Vestas Sailrocket 2 à 65 noeuds en Namibie. Cliquez pour la video !" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;/a&gt;&lt;figcaption&gt;Vestas Sailrocket 2 à 65 noeuds en Namibie. Cliquez pour la video !&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Dans un
spectaculaires, j&amp;rsquo;ai relevé que pour atteindre de telles vitesses il faut des conditions idéales : vent de 30 nœuds (voire plus pour les kite) arrivant sous le bon angle au ras d&amp;rsquo;une plage pour que les vagues ne soient pas formées. Le record absolu de vitesse a-t-il toujours un sens s&amp;rsquo;il faut attendre des semaines que ces conditions se présentent en l&amp;rsquo;un des quelques spots idéaux de la planète ? Ne devrait-on pas plutôt mettre sur pied des records relatifs à la vitesse du vent, en considérant que Sailrocket a atteint 2.4x la vitesse du vent, un kitesurf atteignant 1.8 et &amp;ldquo;BMW Oracle&amp;rdquo;, le géant de la dernière Coupe de l&amp;rsquo;America un facteur 4.5 ?&lt;/p&gt;
&lt;p&gt;Car oui, on peut aller
. Mais pas à toutes les
: les bateaux munis de voiles traditionnelles ou d&amp;rsquo;ailes fixes ne peuvent remonter face au vent. Et au &amp;ldquo;vent arrière&amp;rdquo;, il sont condamnés à une vitesse inférieure à celle du vent car  lorsque la vitesse du bateau augmente, le
 diminue jusqu&amp;rsquo;au point où la puissance extraite par les voiles compense la
, et le bateau ne peut plus accélérer. *&lt;/p&gt;
&lt;p&gt;Mais des voiles &amp;ldquo;non traditionnelles&amp;rdquo; permettent-elles de dépasser ces limites ?&lt;/p&gt;
&lt;p&gt;La réponse est oui. Sur l&amp;rsquo;eau il existe déjà des 
, de 
s et même un 
 propulsés par des éoliennes orientables couplées à des hélices marines, ce qui leur permet de remonter directement face au vent. Mais en l&amp;rsquo;absence d&amp;rsquo;organisme validant des records de
, les navigateurs ont peu de considération pour ces travaux&lt;/p&gt;
&lt;p&gt;Sur terre, la 
 (Association Nord Américaine de Chars à Voile) homologue des records face au vent en vitesse absolue (C3) et relative (C4) 
. Ces deux records étaient tous deux détenus par le véhicule &amp;ldquo;DTU&amp;rdquo; de l&amp;rsquo;Université Technique du Danemark participant à l&amp;rsquo;édition 2011 de la 
. Il avait atteint 24.6 km/h et 75% de la vitesse du vent pendant les 10 meilleures secondes de son parcours sur une route de  5.3 km orientée face au vent. La course a été remportée cette année par 
, un engin de l&amp;rsquo;Ecole Technique Supérieure du Québec qui a
.&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 525px; width: 100%;"&gt;&lt;a href="http://www.etsmtl.ca/nouvelles/2012/Racing-Aeolus-2012" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2012/images/1792685048ef34dae01a6a90a4e2f3ab_hu_9a695be791f580e4.webp" srcset="https://drgoulu.com/posts/2012/images/1792685048ef34dae01a6a90a4e2f3ab_hu_9a695be791f580e4.webp 320w, https://drgoulu.com/posts/2012/images/1792685048ef34dae01a6a90a4e2f3ab_hu_4e731b5af028666f.webp 480w, https://drgoulu.com/posts/2012/images/1792685048ef34dae01a6a90a4e2f3ab_hu_ac7f5ec63a6d3dfb.webp 525w" sizes="(max-width: 640px) 100vw, 525px" alt="Chinook, lauréat de l&amp;#39;Aeolus 2012 avec 58.5% de la vitesse du vent (cliquer pour plus d&amp;#39;infos)" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;/a&gt;&lt;figcaption&gt;Chinook, lauréat de l&amp;rsquo;Aeolus 2012 avec 58.5% de la vitesse du vent (cliquer pour plus d&amp;rsquo;infos)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Chinook a peut-être même ponctuellement fait mieux que les 75% de DTU, mais ça n&amp;rsquo;a plus d&amp;rsquo;importance depuis le 16 juin 2012. Car ce jour là, le &amp;ldquo;
&amp;rdquo; de Rick Cavallaro a pulvérisé le record de vitesse absolue face au vent (C3) avec 36.6 km/h et surtout le record relatif  (C4) avec 2.1 fois la vitesse du vent réel !  
,
&lt;/p&gt;
&lt;figure class="aligncenter" style="max-width: 640px; width: 100%;"&gt;&lt;a href="http://www.nalsa.org/BlackBirdDDWSR/UpwindSubmisionReportNALSA.pdf" target="_blank" rel="noopener"&gt;&lt;img src="https://drgoulu.com/posts/2012/images/8890bfe93e11edfd8eb72677a4f64145_hu_49a91df6972ecbca.webp" srcset="https://drgoulu.com/posts/2012/images/8890bfe93e11edfd8eb72677a4f64145_hu_49a91df6972ecbca.webp 320w, https://drgoulu.com/posts/2012/images/8890bfe93e11edfd8eb72677a4f64145_hu_b1181f14569fd88c.webp 480w, https://drgoulu.com/posts/2012/images/8890bfe93e11edfd8eb72677a4f64145_hu_50f3ae24c279ed62.webp 640w" sizes="(max-width: 640px) 100vw, 640px" alt="Blackbird 2012" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" data-zoomable /&gt;&lt;/a&gt;&lt;figcaption&gt;Blackbird face au vent. Remarquez le pas variable de l&amp;rsquo;éolienne (et cliquez pour plus d&amp;rsquo;infos)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Ce record spectaculaire est cependant moins surprenant que celui qu&amp;rsquo;avait déjà réalisé Blackbird le 3 juillet 2010. Ce jour là Rick Cavallaro est devenu le premier homme &amp;ldquo;DDWFTTW&amp;rdquo; : Direct DownWind Faster Than The Wind. Il a même atteint 44.6 km/h dans 16 km/h de vent, soit presque 2.8 fois la vitesse du vent
,
au vent arrière !&lt;/p&gt;
&lt;div class="my-6 mx-auto" style="max-width: 640px; width: 100%;"&gt;
&lt;div class="w-full relative rounded-lg overflow-hidden shadow-md bg-black" style="padding-bottom: 56.25%; height: 0;"&gt;
&lt;iframe
src="https://www.youtube-nocookie.com/embed/5CcgmpBGSCI"
title="YouTube video player"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Comme le dit Rick Cavallaro dans un article passionnant qui retrace toute l&amp;rsquo;aventure
, 99% des gens pensent a priori que c&amp;rsquo;est impossible (c&amp;rsquo;était mon cas) et 99% des autres n&amp;rsquo;arrivent pas à comprendre comment ça peut marcher (c&amp;rsquo;est mon cas actuellement, mais je me soigne).&lt;/p&gt;
&lt;p&gt;En 2008,
où l&amp;rsquo;on voit un modèle réduit dépasser la vitesse du vent (à partir de 1:22) a été qualifiée de canular et suscité des commentaires très critiques voire haineux sur plusieurs forums. Même des blogs de science respectables assimilaient DDWFTTW à &amp;ldquo;mouvement perpétuel&amp;rdquo; 
.&lt;/p&gt;
&lt;p&gt;Il faut dire que la première idée qui vient à l&amp;rsquo;esprit est fausse : ce n&amp;rsquo;est pas l&amp;rsquo;éolienne qui fait tourner les roues, ce qui poserait un problème lorsque le vent apparent s&amp;rsquo;annule. Ce n&amp;rsquo;est pas non plus l&amp;rsquo;inertie du rotor qui permet de passer cette vitesse critique, et il ne faut pas inverser le pas de l&amp;rsquo;hélice pour qu&amp;rsquo;elle mouline l&amp;rsquo;air venant de l&amp;rsquo;avant après avoir mouliné l&amp;rsquo;air venant de l&amp;rsquo;arrière. D&amp;rsquo;ailleurs regardez la vidéo une fois encore : l&amp;rsquo;hélice tourne dans la direction &amp;ldquo;propulsive&amp;rdquo; dès le départ, et rien de spécial ne se produit lorsque l&amp;rsquo;engin atteint la vitesse du vent&lt;/p&gt;
&lt;p&gt;La solution est beaucoup plus simple, mais aussi beaucoup plus perturbante que ça : ce sont les roues qui actionnent l&amp;rsquo;hélice, qui fonctionne comme un propulseur ! Ca pue le mouvement perpétuel, mais ça n&amp;rsquo;en est pas un parce que le vent réel est toujours présent, le problème étant de pouvoir utiliser son énergie.&lt;/p&gt;
&lt;p&gt;Dans leur article &amp;ldquo;
&amp;rdquo;
paru dans &amp;ldquo;Pour La Science&amp;rdquo; cet été, 
 et Édouard Kierlik utilisent l&amp;rsquo;analogie du yoyo : quand un yoyo est posé au sol et qu&amp;rsquo;on tire doucement sur la ficelle, il se rapproche en enroulant la ficelle autour de son axe, donc plus vite que le déplacement de la ficelle. Ce comportement ne se produit cependant que si
 entre le rapport de transmission (le rapport entre le périmètre de l&amp;rsquo;axe et le périmètre du yoyo) entre le coefficient de frottement du yoyo au sol sont satisfaites.&lt;/p&gt;
&lt;p&gt;Sur &amp;ldquo;Blackbird&amp;rdquo;, c&amp;rsquo;est le vent réel arrière qui joue le rôle de la ficelle et l&amp;rsquo;hélice celui de l&amp;rsquo;axe. Avec un rapport de transmission entre le périmètre des roues et le pas de l&amp;rsquo;hélice bien choisi et des coefficients de frottement avec la route et avec l&amp;rsquo;air suffisants, le véhicule exploite avec une sorte de bras de levier la différence de vitesse relative entre les deux milieux, différence qui reste d&amp;rsquo;amplitude et de direction constante lorsque le véhicule accélère.&lt;/p&gt;
&lt;p&gt;La possibilité théorique d&amp;rsquo;un tel véhicule avait déjà été établie en 1969
. Il a fallu 40 ans de travail de passionnés pour arriver à dépasser la vitesse du vent sous toutes les allures, mais pour l&amp;rsquo;instant à terre, et avec des véhicules différents ou nécessitant une adaptation. Qui arrivera à rouler sur un cercle complet plus vite que le vent réel ? Et qui arrivera à le faire sur l&amp;rsquo;eau ?&lt;/p&gt;
&lt;p&gt;Note * ajoutée le 2.3.15 : En
, les voiliers modernes comme Oracle
peuvent atteindre une
supérieure à celle du vent tant en le remontant qu&amp;rsquo;en le descendant.&lt;/p&gt;
&lt;h3 id="références"&gt;Références&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span id="ref-1"&gt;&lt;/span&gt;&amp;quot;
&amp;quot;, 2012&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-2"&gt;&lt;/span&gt;Rick Cavallaro
&amp;rdquo; 25 June 2012&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-3"&gt;&lt;/span&gt;Bob Dill and Kimball Livingston &amp;ldquo;
&amp;rdquo;, NALSA, Novembre 2012&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-4"&gt;&lt;/span&gt;
 (slides sur la conception d&amp;rsquo;un véhicule de la compétiton)&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-5"&gt;&lt;/span&gt;Rick Cavallaro &amp;ldquo;
&amp;quot;, 12 July 2010&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-6"&gt;&lt;/span&gt;Bob Dill and Kimball Livingston &amp;ldquo;
&amp;rdquo;, NALSA 2010&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-7"&gt;&lt;/span&gt;Rick Cavallaro, &amp;ldquo;
&amp;rdquo;, Wired, 27 August 2010&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-8"&gt;&lt;/span&gt;Rhett Allain 
&amp;rdquo; , Scienceblogs, décembre 2008&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-9"&gt;&lt;/span&gt;Jean-Michel Courty et Édouard Kierlik &amp;ldquo;
&amp;quot;, Pour la Science N°417 - juillet 2012&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-10"&gt;&lt;/span&gt;Andrew B. Bauer &amp;ldquo;
&amp;rdquo;, 1969&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Google trie 1 PetaByte de données !</title><link>https://drgoulu.com/2008/11/22/tri/</link><pubDate>Sat, 22 Nov 2008 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2008/11/22/tri/</guid><description>&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://drgoulu.com/posts/2008/images/12217e99baa824ef61d7941a70ea03f7_hu_5f0929e09bf105c7.webp 240w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://drgoulu.com/posts/2008/images/12217e99baa824ef61d7941a70ea03f7_hu_5f0929e09bf105c7.webp"
width="240"
height="161"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
Pour trier un jeu de 72 cartes, je prends une carte de mon jeu mélangé, et je la pose sur la table. J&amp;rsquo;en prends une seconde, et je la place sur la table avant ou après la première selon l&amp;rsquo;ordre que je souhaite. La troisième carte peut aller avant ou après les deux premières, ou être insérée entre les précédentes, et ainsi de suite jusqu&amp;rsquo;à ce que toutes les cartes soient triées dans l&amp;rsquo;ordre sur la table, ce qui me prend un peu plus d&amp;rsquo;une minute.&lt;/p&gt;
&lt;h3 id="un-terabyte-pour-commencer"&gt;Un TeraByte pour commencer&lt;/h3&gt;
&lt;p&gt;Dans le même temps de 68 secondes,
, améliorant d&amp;rsquo;un facteur 3 le
obtenu plus tôt cette année. Suivant les règles du  &amp;ldquo;
&amp;rdquo; proposé par
en 1998, les cartes contenaient 100 bytes, ce qui représente au total un TeraByte, l&amp;rsquo;équivalent, grosso-modo, d&amp;rsquo;un annuaire qui inclurait tous les habitants de la planète.&lt;/p&gt;
&lt;p&gt;Un TeraByte, c&amp;rsquo;est la capacité d&amp;rsquo;un gros disque dur actuel, mais on ne peut y lire ou écrire &amp;ldquo;que&amp;rdquo; 300 MegaByte par seconde : il faudrait au mieux une heure pour lire les donner à trier dans une mémoire de 1000 GigaByte (qui n&amp;rsquo;existe pas&amp;hellip;) et une autre heure pour réécrire la liste triée, sans compter le temps du tri proprement dit . Google a donc utilisé 1000 ordinateurs, et au moins autant de disques durs formant une partie du &amp;ldquo;Google File System&amp;rdquo;
, le gigantesque système de stockage de Google.&lt;/p&gt;
&lt;h3 id="trions-en-parallèle"&gt;Trions en parallèle&lt;/h3&gt;
&lt;p&gt;Mais comment trier les mêmes données à plusieurs? Reprenons le jeu de 72 cartes et divisions le en 2 tas de 36 cartes mélangées, un pour toi, un pour moi. Nous pourrions placer nos cartes sur une seule ligne sur la table et espérer le faire 2 fois plus vite, mais problème peut survenir si nous voulons simultanément insérer nos cartes au même endroit : comment les placer dans le bon ordre dans ce cas ?  Soit on doit alors comparer nos deux cartes et éventuellement les intervertir avant de les insérer, soit on doit convenir d&amp;rsquo;insérer les cartes à tour de rôle, ce qui ralentit considérablement l&amp;rsquo;opération. Avec 1000 ordinateurs, on ne va pas s&amp;rsquo;en sortir beaucoup mieux car c&amp;rsquo;est visiblement l&amp;rsquo;accès à la table (=mémoire), unique, qui forme un goulot d&amp;rsquo;étranglement : pas efficace.&lt;/p&gt;
&lt;p&gt;Une autre approche serait que je trie mes 36 cartes et toi tes 36 cartes indépendamment, puis que nous réunissions nos deux piles triées, ce qui est très rapide : je pose mes cartes une à une tant qu&amp;rsquo;elles viennent avant celle que je vois sur le haut de ta pile, et quand je ne peux plus en poser, tu poses les tiennes tant qu&amp;rsquo;elles viennent avant celle que je ne pouvais plus poser etc.&lt;/p&gt;
&lt;p&gt;On peut faire même mieux en échangeant astucieusement nos cartes plutôt que de reformer une seule pile. Si je trie les carreaux et coeur, et toi les trèfles et pique, plus besoin de reformer une pile unique à la fin : commençons par nous échanger les cartes qui n&amp;rsquo;ont pas la bonne couleur, puis trions nos tas chacun sur notre table, et voilà !&lt;/p&gt;
&lt;figure class="alignright" style="max-width: 280px; width: 100%;"&gt;&lt;img src="https://drgoulu.com/posts/2008/images/d4e5d0a778dba725091d8317e6bac939.gif" alt="Animation de lalgorithme de tri quicksort, nettement plus efficace sur un ordinateur que le tri par insertion" loading="lazy" class="rounded-lg shadow-sm w-full h-auto" /&gt;&lt;figcaption&gt;Animation de l&amp;rsquo;algorithme de tri &amp;quot;quicksort&amp;quot;.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id="quicksort"&gt;QuickSort&lt;/h3&gt;
&lt;p&gt;Voilà qui ressemble furieusement à l&amp;rsquo;
illustré ci-contre : on commence par échanger les données plus grande qu&amp;rsquo;un pivot (seuil bleu) de la première moitié contre celles plus petites que le seuil de la 2ème moitié. Puis on peut répéter l&amp;rsquo;opération entre le premier quart et le second d&amp;rsquo;une part, et le 3ème et le 4ème d&amp;rsquo;autre part, et ainsi de suite. Si on a un nombre de données qui est une puissance de 2, on peut tout trier par simples échanges, et si on dispose aussi d&amp;rsquo;un nombre de processeurs qui soit une puissance de deux, on peut répartir le travail très efficacement. A quelques variations près, c&amp;rsquo;est cet algorithme
qui est utilisé pour trier de très grosses quantités de données.&lt;/p&gt;
&lt;h3 id="mapreduce"&gt;MapReduce&lt;/h3&gt;
&lt;p&gt;S&amp;rsquo;il y a un sujet sur lesquel j&amp;rsquo;aurais du me documenter avant d&amp;rsquo;
, c&amp;rsquo;est
. Le principe est tout simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le programmeur écrit :
&lt;ul&gt;
&lt;li&gt;une fonction &amp;ldquo;map&amp;rdquo; qui sera appliquée à chaque donnée et produira un résultat intermédiaire&lt;/li&gt;
&lt;li&gt;une fonction &amp;ldquo;reduce&amp;rdquo; qui regroupera les résultats intermédiaires de &amp;ldquo;map&amp;rdquo; pour produire le résultat final&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;on donne ces deux fonctions à MapReduce, qui se charge de les exécuter de façon efficace sur beaucoup de donnée sur beaucoup de disques durs et beaucoup d&amp;rsquo;ordinateurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le MapReduce de Google contient en fait un algorithme de partitionnement qui répartir les résultats des &amp;ldquo;map&amp;rdquo; sur les &amp;ldquo;reduce&amp;rdquo;, et un algorithme de tri incorporé à la partie &amp;ldquo;Reduce&amp;rdquo;, car les fonctions &amp;ldquo;reduce&amp;rdquo; peuvent presque toujours être rendues plus efficaces si leurs données sont triées. De ce fait, il semblerait que le record du tri ait été obtenu avec une fonction &amp;ldquo;map&amp;rdquo; triviale, et une &amp;ldquo;reduce&amp;rdquo; qui ne l&amp;rsquo;est pas moins!&lt;/p&gt;
&lt;p&gt;MapReduce est probablement la plus géniale idée des ingénieurs de Google, et une contribution majeure à l&amp;rsquo;informatique du futur. Le code n&amp;rsquo;est pas public, mais
.  D&amp;rsquo;autre part la fondation Apache a un
, qui se base sur
, leur équivalent du Google File System. C&amp;rsquo;est en utilisant ce système + 1000 lignes de Java seulement que Yahoo! a pu trier le TeraByte en 209 secondes
. 3x moins bien que Google, c&amp;rsquo;est quand même pas mal du tout&amp;hellip;&lt;/p&gt;
&lt;p&gt;Pour en savoir plus sur MapReduce vous pouvez lire la référence
, et/ou :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;regarder cette vidéo &lt;div class="my-6 mx-auto" style="max-width: 760px; width: 100%;"&gt;
&lt;div class="w-full relative rounded-lg overflow-hidden shadow-md bg-black" style="padding-bottom: 56.25%; height: 0;"&gt;
&lt;iframe
src="https://www.youtube-nocookie.com/embed/NXCIItzkn3E"
title="YouTube video player"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
loading="lazy"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;consulter ces
, plus techniques, avec exemple de code
et performances&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="et-un-petabyte-un-"&gt;Et un
, un !&lt;/h3&gt;
&lt;p&gt;Une fois qu&amp;rsquo;on a un stockage distribué (GFS), un système de traitement parallèle massif (MapReduce) et quelques milliers d&amp;rsquo;ordinateurs, pourquoi se limiter à trier un TeraByte ? Comme ils le disent dans
, Google était &amp;ldquo;curieux de voir ce qui arrive si on essaie avec un PetaByte&amp;rdquo;. 1000x plus quoi. Juste pour voir&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ca a pris 6 heures et 2 minutes, soit 21720 secondes sur 4000 ordinateurs. Ramené au même nombre d&amp;rsquo;ordinateurs, ça a donc pris &amp;ldquo;seulement&amp;rdquo; 1277x plus de temps pour trier 1000x plus de données. C&amp;rsquo;est assez efficace si l&amp;rsquo;on considère que la complexité d&amp;rsquo;un algorithme comme QuickSort est O(N.log N) : sur un seul ordinateur, trier 1000x plus de données prend théoriquement 1000x10 = 10'000x plus de temps. Mais en répartissant le tri sur 4 fois plus d&amp;rsquo;ordinateurs, on divise ce temps par 4 et en plus on divise par 4 la taille des données : on devrait se retrouver avec 250x8/4 = environ 500x plus de temps. Un facteur 1277 c&amp;rsquo;peut sembler nettement plus, mais c&amp;rsquo;est normal en raison des communications supplémentaires entre les ordinateurs.&lt;/p&gt;
&lt;p&gt;Le tri du PetaByte pose une autre problème intéressant : les données étaient réparties sur 48'000 disques durs et statistiquement, en 6 heures de calcul, au moins un des disques tombe en panne
! Il faut donc que les données triées soient redondantes pour que l&amp;rsquo;on puisse remplacer le disque fautif sans interrompre l&amp;rsquo;exécution du tri, ce qui illustre une autre fonctionnalité remarquable du Google File System &amp;hellip;&lt;/p&gt;
&lt;h3 id="et-après-"&gt;Et après ?&lt;/h3&gt;
&lt;p&gt;Peu de groupes au monde disposent d&amp;rsquo;assez de ressources pour tenter de faire mieux que Google. Mais heureusement, les
sont ouverts à d&amp;rsquo;autres catégories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la catégorie &amp;ldquo;penny&amp;rdquo; consiste à trier le plus de nombres possibles pour un &amp;ldquo;cout&amp;rdquo; d&amp;rsquo;un penny, environ 1.3 centimes d&amp;rsquo;Euro. Le record actuel a été obtenu sur un PC doté d&amp;rsquo;un AMD 64 sous Linux, mais surtout de 4 disques dur SATA, qui a trié 1'812'000 enregistrements de 100 bytes en 2.408 secondes&lt;/li&gt;
&lt;li&gt;la catégorie &amp;ldquo;Minute&amp;rdquo; limite le temps de calcul à 60 secondes. Une machine parallèle du MIT a trié 2.140 Milliards d&amp;rsquo;enregistrements de 100 bytes toujours en 2007.&lt;/li&gt;
&lt;li&gt;la catégorie &amp;ldquo;
&amp;rdquo; me semble plus intéressante au niveau du matériel que du logiciel : il s&amp;rsquo;agit de trier un maximum de nombres par
d&amp;rsquo;énergie consommée par l&amp;rsquo;ordinateur. Le record appartient à un ordinateur portable utilisant un processeur intel Mobile Core 2 Duo doté de 13 (!) disques durs, et qui trie environ 11'300 enregistrements par Joule
. Si les machines de Google avaient la même efficacité énergiétique, le tri du PetyBytes aurait consommé 0.885 GigaJoule, soit 246KWh. Répartis sur 6 jours, ça donne une puissance de 1.7 KW seulement.
. Mais avec 4000 gros PC et 48'000 disques durs, Google est probablemet autour de 20x plus.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="et-les-spaghetti-dans-tout-ça-"&gt;Et les spaghetti dans tout ça ?&lt;/h3&gt;
&lt;p&gt;Je ne peux me résoudre à terminer un article sur le tri sans parler du
qui m&amp;rsquo;avait émerveillé il y a près de 25 ans déjà
.&lt;/p&gt;
&lt;p&gt;Comme on l&amp;rsquo;a vu plus haut, les meilleurs algorithmes de tri existant ont une complexité O(N.Log N) : le temps de calcul augmente plus vite que le nombre des données, et malgré quelques progrès dus à la parallélisation, il n&amp;rsquo;existe pas de tri informatique général* en O(N).&lt;/p&gt;
&lt;p&gt;Pourtant, des spaghettis pourraient réussir là où les
patinent :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;on coupe un spaghetti à une longueur représentant le premier enregistrement à trier ramené à un nombre. On coupe un autre spaghetti à la longueur du second nombre, et ainsi de suite pour tous les nombres, et en un temps O(N) on obtient N spaghettis.&lt;/li&gt;
&lt;li&gt;on pose verticalement la botte de spaghettis sur une table plane de façon à tasser tous les spaghettis contre la table. Ceci prend un temps constant, très court et indépendant de N et ne compte donc pas dans la complexité globale&lt;/li&gt;
&lt;li&gt;En posant une planche enduite de colle sur la botte, on extrait le spaghetti le plus long, on le mesure, on retransforme le nombre en une donnée qu&amp;rsquo;on écrit au bas de la liste triée et on recommence N fois, pour chaque spaghetti.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Voilà, les spaghettis permettent de trier nos enregistrements en un temps proportionnel à N ! Trier 1000x plus de spaghettis prendra exactement 1000x plus de temps. En fait, si on disposait d&amp;rsquo;une machine capable de couper puis de mesurer 150 millions de spaghetti à la seconde, elle aurait égalé la machine de Google sur le TeraByte, et l&amp;rsquo;aurait battu sur le PetaByte, en 18.8 heures seulement :-)&lt;/p&gt;
&lt;p&gt;Plus sérieusement, si on a besoin de trier des objets physiques (des grains de sable, des protéines, des ADN ?), il pourrait être intéressant de ne pas oublier la leçon des spaghetti : certains dispositifs physiques peuvent être plus rapides que les plus puissants ordinateurs
&lt;/p&gt;
&lt;h3 id="références"&gt;Références&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span id="ref-1"&gt;&lt;/span&gt;Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung &amp;ldquo;
&amp;rdquo;, 19th ACM Symposium on Operating Systems Principles, Lake George, NY, October, 2003.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-2"&gt;&lt;/span&gt;Jeffrey Dean and Sanjay Ghemawat, &amp;ldquo;
&amp;rdquo; OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-3"&gt;&lt;/span&gt;Jim Wyllie, &amp;ldquo;
&amp;rdquo;, IBM, February 4, 1999&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-4"&gt;&lt;/span&gt;Owen O’Malley, &amp;ldquo;
&amp;rdquo;, Yahoo!, May 2008&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-5"&gt;&lt;/span&gt;
: records de tri de données depuis 1987&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-6"&gt;&lt;/span&gt;“
“  Datamation, V 31.7, April 1985, pp 112-118.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-7"&gt;&lt;/span&gt;Eduardo Pinheiro, Wolf-Dietrich Weber and Luiz André Barroso, &amp;ldquo;
&amp;rdquo;, Google Inc. Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST’07), February 2007.&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-8"&gt;&lt;/span&gt;Suzanne Rivoire et al. &amp;ldquo;
&amp;quot;,SIGMOD’07, June 11–14, 2007, Beijing, China&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-9"&gt;&lt;/span&gt;Dewdney, A. K.&amp;ldquo;On the spaghetti computer and other analog gadgets for problem solving&amp;rdquo;, Scientific American, (June 1984), 250 (6): 19-26&lt;/li&gt;
&lt;li&gt;&lt;span id="ref-10"&gt;&lt;/span&gt;Niall Murphy et al. &amp;ldquo;
&amp;rdquo;,
,2008, Vol 4 nr 1, pages 3-12&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note* : il existe des algorithmes de tri de complexité linéaire sur des données satisfaisant certaines hypothèses, comme Hervé me l&amp;rsquo;a fait remarquer dans un commentaire&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>