Publié le 7 février 2017 - par

Overclocker un Raspberry Pi 3 : rêve ou réalité ?

C’est un peu comme les inventions… Quand c’est dans l’air il faut que ça sorte. Après l’excellent article de l’Officiel PC Raspberry Pi sur l’overclocking du Raspberry Pi 3 j’avais choisi de faire imprimer en 3D un boîtier recevant un ventilateur pour tester cette possibilité. Dans le même temps Raspbian-France actualise un article sur le même sujet. Bin là c’est un peu pareil, l’heure de l’overclocking est venue. En français vous appellerez ça le surcadencement ou … surfréquençage 🙂

Cliquez pour avoir une information sur les niveaux.

En raison des risques encourus je déconseille ces tentatives aux débutants (après, chacun fait ce qu’il veut 😉 ) pour les réserver plutôt aux utilisateurs avancés ou confirmés.

Attention, DANGER
L’overclocking est une opération risquée pour un Raspberry Pi. L’augmentation de température qui en découle peut diminuer la durée de vie du SoC, provoquer des plantages du système, voire vous faire perdre la garantie constructeur. Vous faites ces tests à vos risques et périls. Framboise314 ne pourra être tenu responsable en cas de problème.

Tous les composants de même référence sont identiques

FAUX ! Prenez par exemple ce lot de transistors. Ils se ressemblent tous, ils sortent de la même chaîne de fabrication, ils portent la même référence. Ils sont donc tous pareils !

Eh non ! Chacun est un individu différent des autres. Parce que lors de la fabrication la température a varié de quelques dixièmes de degrés, parce que le silicium aussi pur et régulier soit-il a de minuscules défauts, parce que les fils soudés sur les sorties provoquent de légères variations, parce que l’inclusion dans un boîtier amène des perturbations légèrement différentes etc. Chaque composant est différent de son voisin.

Le test final des composants

Comment le fabricant fait-il pour caractériser ses composants ? Il les teste en sortie de chaîne de fabrication. D’une part pour éliminer les composants défectueux, d’autre part pour les trier en fonction d’un certain nombre de critères.

BC547B

Par exemple pour un transistor BC547 on va trouver ces modèles :

  • BC547 : Gain 110 à 800
  • BC547A : Gain 110 à 220
  • BC547B : Gain 220 à 450
  • BC547C : Gain 420 à 800

Vous imaginez bien que le BC547C est vendu plus cher que le BC547 😉

 

Ce qui est intéressant c’est de voir que le même composant peut avoir un gain qui va de 110 à 800 !

Et pour les microprocesseurs ?

C’est pareil ! A la sortie de chaîne de fabrication, chaque composant est soumis à une batterie de tests. On élimine les composants défectueux, on vérifie le bon fonctionnement de chaque microprocesseur et… on mesure sa fréquence maximale de fonctionnement. Ceux qui sont en dessous de la fréquence cible sont éliminés (ou vendus comme déclassés, on les retrouvera éventuellement sur des sites de vente en ligne…).

Par exemple le même microprocesseur BCM2835 fonctionnait à 700 MHz sur les premières générations de Raspberry Pi et à 900 MHz sur le Raspberry Pi Zero. Mais on pouvait déjà augmenter sa fréquence au delà de 700 MHz, jusqu’à 1GHz.

On peut estimer que si un CPU est garanti pour fonctionner à 700 MHz, le fabricant a pris une marge et que 80% des BCM2835 montent à 800 voire 900 MHz. Ça veut dire aussi que quelques pourcents des CPU montent à 1 GHz, et un pouième monte à 1,1 GHz ou un peu plus…

Avec l’amélioration de la qualité en production, ce même BCM2835 est maintenant garanti pour fonctionner à 900 MHz.

Même pour le BCM2837 du Raspberry Pi 3 ?

Il est soumis aux mêmes tests en fin de production et il est garanti pour fonctionner à 1,2 GHz. Maintenant vous savez que ce n’est que la fréquence garantie par le fabricant et qu’en fait votre BCM2837 va monter plus haut en fréquence, et peut-être même beaucoup plus haut 🙂

Overclocker un Raspberry Pi 3

Soyons prudents

Pas question de mettre en danger la vie d’un Raspberry Pi 3. J’ai « investi » dans un jeu de radiateurs. Il y a un radiateur à ailettes pour le CPU, un autre pour le circuit USB/Ethernet et une plaque de cuivre pour assurer le refroidissement de la mémoire.

Montage des radiateurs

Le Raspberry Pi 3 a été équipé de ces radiateurs, munis d’un adhésif présentant un bon coefficient de transmission de la chaleur. Après mure réflexion 😀 j’ai décidé de les coller dans ce sens mais à mon avis comme le ventilateur est juste au-dessus ça doit avoir peu d’importance.

Pour la mémoire, la plaque est plus adaptée. Dans un boîtier, il y a peu de place sous le Raspberry Pi et cette solution peu encombrante permet d’utiliser un boîtier classique.

Ventilation forcée

Pour les tests de l’impression collaborative Freelabster, j’avais choisi un boîtier qui pouvait être équipé d’un ventilateur de 30 mm.

J’ai monté le ventilateur pour qu’il souffle l’air ambiant sur le radiateur du CPU. L’autre possibilité était d’aspirer mais pas sûr que les ouïes d’aération soient prévues pour ça.

Pas besoin d’écrou, le diamètre des trous est plus petit que le diamètre de la vis… La fixation se fait en vissant directement dans le plastique du couvercle imprimé.

On connecte la prise sur les broches 4 et 6 du GPIO (fil rouge +5v sur la broche 4, fil noir GND sur la broche 6).

Pensez à passer le fil par le trou du boîtier sinon il faudra démonter. (On ne rigole pas ça m’est arrivé 😀 )

Allez on met sous tension ! Le ventilo tourne bien (sur la photo on voit le radiateur à ailettes à travers les pales…).

Bon, après quelques minutes il a commencé à faire un bruit pas sympathique du tout, un mélange de bruit de frottement et de souffle d’air. Bin pour faire un mediacenter qu’on va mettre dans le salon, c’est pas top 😉

Allez on oublie le bruit et on va faire chauffer le Raspberry Pi… ou pas 🙂

Que dit la configuration ?

Officiellement, le Raspberry Pi 3 n’est pas overclockable si l’on en croit la fenêtre de configuration affichée dans PIXEL.

Mais quand on regarde dans /boot/config.txt on trouve cette ligne :

#uncomment to overclock the arm. 700 MHz is the default.

On voit qu’avec 700 MHz affichés, c’est un héritage des précédentes versions. Mais c’est bien là que ça se passe 🙂

Qu’est-ce qu’on peut modifier ?

Le gouverneur

governor (gouverneur ou régulateur) indique au système comment gérer la vitesse du processeur.

Les noyaux Linux récents intègrent un pilote cpufreq avec le régulateur « ondemand » activé par défaut. Il n’a aucun effet tant que vous n’avez pas overclocké le Raspberry Pi. Mais si vous le faites, la fréquence du CPU variera en fonction de la charge du processeur. Vous pouvez ajuster les valeurs minimales avec les options de configuration * _min ou désactiver la variation de fréquence d’horloge avec force_turbo = 1.

Le régulateur peut prendre plusieurs valeurs (d’après PhoneAndroid.com) Ces régulateurs sont prévus pour gérer la consommation d’un smartphone, destination première du BCM2837. Pour les lister sous Raspbian :

pi@raspberrypi:~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance 

Les différents régulateurs

  • Conservative : Il est plus économe en énergie que OnDemand car il monte lentement à la fréquence maximale lors d’une sollicitation puis redescend rapidement à la fin de celle-ci. Si vous lancez une appli gourmande en ressources (un jeu par exemple) le démarrage sera ralenti par ce régulateur, le temps que la fréquence maximum soit atteinte.
  • OnDemand : C’est celui qui est défini par défaut sur le Raspberry Pi. Lorsque la demande en ressources des applications dépasse un certain seuil, il définit automatiquement la fréquence à son maximum. Puis il baisse la fréquence par paliers en fonction de la diminution de la charge, et remonte la fréquence au maximum si la demande remonte. C’est un compromis intéressant entre autonomie et puissance malgré une tendance à trop augmenter la consommation du CPU (sur les courtes et moyennes sollicitations). Il peut donc diminuer l’autonomie plus que d’autres régulateurs dans ce cas. (à voir donc pour des applications alimentées par batterie !)
  • Userspace : Ce régulateur ne réagit pas aux demandes système. C’est l’utilisateur qui définit la fréquence d’utilisation. Il est considéré comme obsolète.
  • Powersave : Fait constamment tourner le CPU à la fréquence minimale définie. Écologique mais… le Raspberry Pi va ramer en permanence 🙂
  • Performance : Pousse la fréquence du processeur au maximum en permanence. Il est très gourmand en énergie et en cas d’utilisation prolongée à une fréquence trop élevée, il peut causer des dommages matériels au processeur.

Les deux valeurs qui nous intéressent sont ondemand et performance.

Forcer la valeur du régulateur

Pour forcer le régulateur à performance j’ai utilisé :

echo "performance" |sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

A chaque reboot malheureusement le gouverneur revenait à la valeur par défaut ondemandJ’en ai donc fait un fichier exécutable que j’ai lancé depuis rc.local  (/home/pi/gouv.sh &) à chaque démarrage. Ensuite le gouverneur gardait la bonne valeur lors d’un reboot. Pour vérifier ajoutez l’icône de moniteur de fréquence dans la barre des tâches et passez la souris dessus (image ci-dessus).

Pour info
En utilisation normale (sans forcer le turbo, ni dépasser un over_voltage de 6) l‘overclock et la surtension que vous appliquez sont désactivés lorsque le SoC atteint 85 °C dans le but de le faire refroidir. Vous ne devriez pas atteindre cette limite, même avec les réglages maximum lorsque la température ambiante est de 25 °C.

La vitesse du CPU

Déjà la fréquence ! Plus elle est élevée, plus le CPU pédale ! Mais attention c’est un peu comme votre voiture sur l’autoroute.

L’énergie de la voiture augmente comme le carré de la vitesse… En passant de 90 à 110 Km/h l’énergie augmente de 2000. De 110 à 130 Km/h l’énergie augmente de 2400. De 130 à 150 KM/h l’énergie augmente de 2800. et ainsi de suite. (Pour les sodomiseurs de diptères, on n’a rien à faire des unités, c’est l’accroissement d’énergie qui nous intéresse)

Du côté de la consommation c’est lié, accélérer de 10 Km/h quand vous roulez à 50 Km/h ne consomme pas autant que l’accélération de 10 Km/h quand vous roulez à 130 Km/h d’autant que la résistance de l’air est elle aussi proportionnelle au carré de la vitesse 🙁

Si tout ça vous intéresse faites un tour sur ce site qui propose les courbes pour la Toyota Yaris, tracées avec GNU Plot.

La tension

Donc plus vous roulez vite, plus l’augmentation de vitesse a une incidence sur l’énergie de la voiture et plus vous consommez de carburant. Pour le CPU plus la fréquence augmente, plus il dissipe d’énergie (il chauffe !) et plus il faut augmenter la tension d’alimentation !!

Bon revenons à nos moutons.

Quel est donc le rapport avec l’overclocking ? Pour pouvoir augmenter la vitesse du CPU, il faut jouer également sur la tension du cœur. Pour le BCM2835 le paramètre over_voltage peut varier de -16 à +8. Et l’énergie dissipée est proportionnelle… au carré de la tension !

Par défaut over_voltage vaut 0 et cela correspond à une tension de 1,2 volt appliquée au cœur. -16 correspond à 0,8 volt et chaque incrément augmente la tension de 0,025 volt.

Attention à la garantie

 

Attention !
Une valeur au dessus de 6 pour over_voltage n’est permise que si force_turbo est activé. Dans ce cas un bit est positionné de façon irréversible dans un registre et vous perdez la garantie du CPU !

 Sur l’axe des abscisses figure la valeur de l’over_voltage. L’axe des ordonnées, positionné à la valeur 8, indique la valeur de la tension en fonction de la valeur d’over_voltage. Lorsque over_voltage vaut 0, la tension du cœur est à 1,2 volt. Les deux dernières valeurs d’over_voltage 7 et 8 positionnent de façon irréversible le bit d’un registre qui annule la garantie du BCM2837 !

On voit que la courbe représentant l’énergie dissipée en fonction de la fréquence « grimpe » plus vite que celle de la tension.

Quelques essais

Sans ventilateur

Boîtier ouvert (donc sans ventilation forcée par le ventilateur), avec une charge CPU autour de 50% la température grimpe à 51 degrés.

Avec le boîtier ouvert en lisant une vidéo, la température grimpe à 60 degrés.

Une fois le boîtier fermé mais toujours sans ventilateur, sans charge CPU, la température est à 50 degrés, la même température que si le boîtier était ouvert, mais le CPU chargé à 54%.

Avec ventilateur

Dans les mêmes conditions que ci-dessus : Boîtier fermé, pas ou peu d’activité CPU, une fois le ventilateur mis en route la température descend de 15 degrés ! Quand même…

Et là… avec une charge CPU importante, ventilateur tournant, la température reste à 45 degrés.

On peut donc dire que la ventilation forcée a une forte influence sur la température du CPU.

Tests de vitesse

Les décimales de pi

Comment tester la vitesse de calcul du CPU ? j’ai choisi un test classique, le calcul des décimales de pi. Ça tombe bien, non ? C’est un exemple qui est donné dans le man de la commande bc :

pi=$(echo "scale=10; 4*a(1)" | bc -l)

Qui deviendra dans notre cas

time echo « scale=5000; 4*a(1) » | bc -l

  • time : mesurer le temps d’exécution
  • scale=5000 : Nombre de décimales de pi à calculer
  • 4*a(1) : formules mathématique pour calculer pi. Utilise la fonction Arc Tangente a().
  • bc -l : la formule est envoyée à la commande bc, pour que celle-ci effectue le calcul. L’option -l permet de charger la librairie mathématique standard, nécessaire pour utiliser la fonction Arc Tangente a().

Installation de bc

La calculatrice en ligne de commande bc n’est pas installée par défaut dans Raspbian. Il faut donc l’installer. Au passage on peut voir que l’activité du CPU lors de l’installation reste autour de 45% et la température à 40 degrés. Le boîtier était fermé, ventilateur en fonctionnement.

Calcul de 5000 décimales de pi sans overclock

Lançons le premier test de vitesse qui servira de référence. J’ai testé le calcul de 50, 500, 5000 et 50000 décimales.

pi@raspberrypi:~ $ time echo "scale=50 ; a(1)*4" | bc -l
3.14159265358979323846264338327950288419716939937508
real    0m0.006s
user    0m0.000s
sys    0m0.000s

6 mS pour calculer 50 décimales… ce n’est pas très significatif et les comparaisons ne seront pas faciles

et pour 50000 décimales il faut plus de 8 heures ! Euhhh… ça fait peut-être beaucoup ! Pas simple dans ce cas de multiplier les tests 🙂

J’ai donc opté pour 5000 décimales de pi.

time echo "scale=5000; 4*a(1)" | bc -l

Bon, là c’est utilisable : 1 minute 20 secondes sans overclock ce n’est pas trop long pour un test et avec l’affichage des millisecondes on a suffisamment d’informations pour faire des comparaisons.

Calcul de 5000 décimales de pi avec overclock

Avec la fréquence poussée à 1,4 GHz le temps de calcul tombe à 1 minute et 9 secondes (j’arrondis). La température est bien contrôlée puisqu’elle se maintient à 41 degrés.

Ici un test à la fréquence de 1,450 GHz, on est tombé à 1,7 seconde et la température est toujours vers 40 degrés.

Alors on fait comment ?

Bin… j’aurai tendance à dire chacun sa m…éthode. C’est pour ça que j’ai indiqué que l’article est destiné aux utilisateur avancés. Ici pas de recette du genre : Voilà les valeurs qu’il faut mettre pour overclocker votre Raspberry Pi 3. Ce serait une connerie ignorer que chaque microprocesseur est vraiment unique et que si overclock il y a, il faudra absolument l’adapter à chaque cas ! Ce qui fonctionne chez moi ne fonctionnera peut-être pas chez vous et je vais encore avoir des commentaires du genre : « J’ai bien suivi le tuto mais ça ne marche pas ! Vous avez une idée ? » ou encore « C’est quoi ce tuto pourri qui marche pas ? » 😀

Il va falloir vous armer de patience, et d’un tableur, noter les valeurs que vous mettez dans /boot/config.txt et… tester ! Si vous ne prenez pas de notes après une dizaine de tests vous ne vous souviendrez plus des premiers résultats 😀

Les valeurs que vous pouvez modifier sont ci-dessus : la fréquence du GPU, celle du CPU et celle de la mémoire plus la tension du cœur. Certaines combinaisons fonctionnent, d’autres non 🙁

Parcourez les articles dans les sources pour en savoir plus.

Et c’est pas tout !

On pourrait croire que le fait d’avoir mis des valeurs dans config.txt, redémarré Raspbian et calculé 5000 décimales de pi est suffisant. Eh bin non ! Il faut aussi faire un test en chargeant « vraiment » le CPU, tester la lecture et l’écriture en mémoire et accéder à la carte microSD en lecture et en écriture. A quoi ça servirait d’avoir un Raspberry Pi qui tourne à 1,5 GHz s’il plante dès qu’on appuie sur une touche du clavier ?

Faut pas stresser…

Bin si, justement on va le stresser le CPU avec un programme qui s’appelle… stress-ng ! Commencez par installer ce programme, ensuite vous pourrez l’utiliser.

Lorsque vous lancerez le programme stress-ng, vous verrez l’indicateur de charge CPU bondir à 100% et la température monter inexorablement pour se stabiliser (autour de 60 degrés dans mon cas). Et puis après un moment tout se fige (ou pas) et vous savez que la fréquence CPU est trop élevée.

Diminuez un peu la fréquence et… recommencez !

Surtout, n’oublies rien !

A quoi ça sert d’avoir un CPU qui pédale comme s’il avait un vélo électrique, mais qui oublie pourquoi il pédale ? En clair Si vous augmentez la vitesse de la mémoire, il faut aussi vérifier qu’elle continue de fonctionner normalement.

Pour ça on va utiliser memtester (installez -le).

Avec la commande free, regardez la mémoire disponible et lancez memtester en lui passant cette valeur (en Mo) en paramètre. memtester commence des tests. Considérez déjà que s’il a fait une boucle c’est bon signe. Attention, si memtester plante ou signale une erreur, celle-ci peut aussi être due à un problème de CPU (fréquence ou over_voltage)… Vous voyez c’est pas si simple 🙂

Une carte n’est pas le territoire

Ce clin d’œil à Alfred Korzybski nous amène à la carte micro SD. Là encore, il ne sert à rien de booster les performances de votre Raspberry Pi s’il se produit des erreurs de lecture ou d’écriture sur la carte SD. Ça va forcément se finir en catastrophe.

sdtest.sh est disponible sur elinux.org. En voici une copie :

#!/bin/bash
#Simple stress test for system. If it survives this, it's probably stable.
#Free software, GPL2+

echo "Testing overclock stability..."

#Max out all CPU cores. Heats it up, loads the power-supply. 
for ((i=0; i<$(nproc --all); i++)); do nice yes >/dev/null & done

#Read the entire SD card 10x. Tests RAM and I/O
for i in `seq 1 10`; do echo reading: $i; sudo dd if=/dev/mmcblk0 of=/dev/null bs=4M; done

#Writes 512 MB test file, 10x.
for i in `seq 1 10`; do echo writing: $i; dd if=/dev/zero of=deleteme.dat bs=1M count=512; sync; done

#Clean up
killall yes
rm deleteme.dat

#Print summary. Anything nasty will appear in dmesg.
echo -n "CPU freq: " ; cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
echo -n "CPU temp: " ; cat /sys/class/thermal/thermal_zone0/temp
dmesg | tail 

echo "Not crashed yet, probably stable."

Laissez tourner sdtest.sh. S’il va à son terme tout va bien il a fait dix cycles de lecture et d’écriture sur la carte SD 🙂

Là encore en cas de plantage ou d’erreur il conviendra de jouer sur les paramètres du CPU.

 Ci dessus un test avec une fréquence de 1,350 GHz. La température à la fin du test atteint 63 °C. J’ai réduit le nombre de boucles à 2 lectures et 2 écritures pour accélérer le processus. Quand les paramètres d’overcloking permettent de boucler 2 fois, repassez à 10 boucles et… allez boire un café 🙂

Y-a quoi à gagner ?

Le tableau ci-dessus résume les tests et le gain en temps sur le calcul de pi (ce n’est qu’une indication, il faudrait tester d’autres applications).

Dans mon cas les conditions de fonctionnement stable avec tous les tests sont réunies à une fréquence CPU de 1350 MHz.

Les réglages sont alors ceux-ci. Ce qui ne présage rien pour vos propres réglages.

Le gain en vitesse est de 13% pour une performance (calcul de pi) améliorée de 11%.

Comme quoi c’est pas le tout de faire son cake en annonçant à la cantonade (rien à voir avec le joueur de foot) « Mon Raspberry Pi 3 tourne à 1,5 GHz ! » s’il plante dès qu’on applique une charge au CPU 🙂

Comme je n’ai pas l’intention (pour le moment) de tester le watercooling

ni le refroidissement par module Peltier

je trouve que le jeu n’en vaut pas la chandelle…

La consommation

Pour un Raspberry Pi 3 sans overclock, en faisant tourner stress-ng  on a une consommation de 0.95 A soit 4.75w

Le même Raspberry Pi 3 avec stress-ng et une fréquence CPU de 1350 MHz consomme 1.14 A soit 5,7w

C’est 20% de consommation supplémentaire pour 10% de performance en plus 🙁

Conclusion

Gagner un peu plus de 10% de performance en soumettant un microprocesseur à des conditions pour lesquelles il n’est pas forcément prévu, ce n’est pas mon truc.

Entre un Raspberry Pi un tout petit peu plus lent et le ventilateur qui me casse les oreilles depuis 2 jours (oui le Pi3 tourne à 1,350 GHz depuis 2 jours pleins maintenant, sans planter, même avec des applis ouvertes et utilisées :

J’ai fait mon choix.

Comme on le dit :  il n’y a que les imbéciles qui ne changent pas d’avis. Je n’étais pas fan (jeu de mot) d’overclocking, eh bien je le reste ! Donc… je suis un imbécile ( 🙁 qui a dit ça on le savait déjà ?). Je vais donc remettre mon Raspberry Pi 3 en état « normal » et fermer la parenthèse sur cet épisode.

Bon, après si vous avez des expériences positives de l’overclocking, rien ne vous empêche de les raconter dans les commentaires ci-dessous, avec des photos si vous voulez 🙂

Sources

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

8 réflexions au sujet de « Overclocker un Raspberry Pi 3 : rêve ou réalité ? »

  1. gUI

    L’overclocking, au-delà d’une utilité limitée comme tu dis dans ta conclusion, permet aussi de comprendre pas mal de choses au niveau du processeur. A la grande époque de l’overclocking du PentiumMMX (le fameux 166MMX qui doublait sa fréquence !!!) on apprenait bcp sur l’achitecture interne de l’ordi (synchro des RAM, influence de la vitesse du bus) en jouant sur différents paramètres.

    Répondre
  2. Ghislain

    Effectivement le petit gain n’est pas vraiment intéressant… perso mon Pi3 tourne bien assez pour transcoder avec Plex. Le ventilateur dessus à même le temps de ce reposer sur certaine vidéo 😉

    Répondre
  3. Bernard

    Bonjour Francois

    Cet article très détaillé comme d’habitude m’a fait faire un retour quelques années en arrière, ou le but était de pousser les processeurs AMD 486 DX2 80 et Intel DX2 66 dans le seul but d’obtenir quelques FPS supplémentaires et souvent sans grand succès .
    Mais l’overclocking comme il a été dit plus haut permet d’en apprendre beaucoup sur son matériel.
    Cela dit calculer 5000 décimales de pi en 1 minute 20 secondes sans overclock , l’ENIAC des années 50 en aurait été rouge de honte avec sa consommation de 150KW et ses 30 tonnes !

    Cordialement

    Répondre
      1. Bernard

        Oui et pour compléter, d’après le tableau donné en annexe de l’excellent « Histoire illustrée de l’informatique » de Lazard et Mounier-Kuhn , un Raspberry Pi des années 2013-2014 est plus performant qu’un CRAY-1 des années 1970 !
        Quand je pense que certains pleurent sur quelques euros de plus ou de moins. 😉

        Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.