Franchement, dans le cycle de dev, l'optimisation en temps arrive à la toute fin, et en général, on a pas le temps, sauf si cela devient une "feature".
L'optimisation a aussi un coup de maintenance (code peu lisible, plus gros, etc…). Et souvent, cela ne vaut pas le cout d'optimiser. Le seul moyen de savoir si cela vaut le cout, c'est de faire des mesures (donc à la fin d'un dev).
« ABC: Always Be Coding » est à rapprocher d'un autre article sur le même sujet, mais qui donne des conseils à ceux qui pose des questions.
L'auteur de cette article propose de savoir écrire les yeux fermé des algo comme A*, des parcours de graph et autre algo de trie. La facilité de faire cela serait un bon moyen d'être embauché.
Mais quel informaticien écrit en moyenne par mois, de tel algo ? Personne ou presque. Un codeur passe son temps à architecturer du code, prévoir plus ou moins l'avenir, revoir les besoins du "clients", debuguer. Mais certain aucun temps à faire ce genre d'exercice.
Concernant les structures de données, il ne sert à rien d'avoir des collections complexe pour des tailles inférieurs à 100. Le O(1) cache souvent un cout fixe énorme, il ne faut pas jeter trop vite les bon vieux tableaux ou liste chainé.
L'article parle de "team work" et que MS serait aller bien plus loin que les autres. En sachant tout cela, je ne comprends plus comment il serait possible pour une boite française un peu sensible, d'utiliser un seul logiciel ou service US.
Un bug subtile à la openbsd (de mémoire) a peu de chance d'être détecté. De plus, comment être sûr que le binaire qui tourne est le même que celui compilé ? Il est possible de faire des diff telquel ? Une backdoor ajouté par un compilateur, cela a été aussi déjà fait il y a longtemps. Et avec les méthodes de mise à jour en ligne, comment être sûr qu'une backdoor n'est pas ajouté en même temps ?
Les caches de µops étaient utilisé dans le Pentium 4, mais plus maintenant, cela prendre trop de place (sauf gestion de boucle).
Si ARM ne fait pas quelques intructions spécialisées pour tout ce qui est couteux (controlleur DRAM dans le cpu, instruction pour les hash, la compression, la crypto), ils se feront manger par intel.
La consomation statique est gérée depuis longtemps : on coupe tout (horloge et alimentation). Les téchniques sont connues. Le vrai défi c'est la consommation max à 100%, quand on navigue sur internet ou joue a Angry Bird.
En effet, Texas instrument avait ses propres usines orienté basse consommation, mais aujourd'hui utilise une fab coréenne comme tout le monde presque, sauf intel. Ils ont ainsi perdu leur avance sur la consommation.
L'avantage est tellement énorme de rester compatible PC, que jamais intel ne fera l'erreur d'inventer encore un nouveau truc. ARM n'a pas vraiment de définition d'architecture d'ordinateur, il suffit de voir les drviers linux de plateforme arm, pour le comprendre.
Le x86 peut contenir des sortes de vliw internes, c'est un peu loin des RISC.
"C'est aussi quelque chose de primordial à saisir pour appréhender les obstacles qu'a le x86 à franchir pour la basse consommation,"
Le seul problème de intel est son inertie interne, c'est tout. Le x86 a par exemple une densité de code très élèvé, supérieur à l'arm. C'est un avantage énorme pour l'efficacité du cache de code.
Intel a sorti, il y a 5 ans, un cpu qui consommait en sommeil autant qu'un ARM à 100%. Aujourd'hui, le dernier soc intel (medfield) consomme moins, soit moins de mips par watt qu'un arm.
Et en plus, l'itanuim était un des seul processeurs VLIW supporté par gcc, difficile de faire fonctionner les optimisations dédiers au coeur superscalaire. Le seul autre VLIW un peu connu est le DSP c6000 de chez Ti.
"en pratique, chaque instruction est ensuite décomposée en micro-instructions qui suivent les principes de RISC."
Le ISC de RISC et CISC, veut dire "instruction set computer". On parle du jeu d'instruction et pas du tout de la micro-architecture interne. Le but premier des mips et sparc, les 1ers RISC, était de réduire la taille du pipeline en ayant l'unité de load/store bien séparé de l'ALU. Le nombre réduit de mode d'adressage (le moyen de choper les data, ici par registre quasi exclusivement) était aussi un avantage de simplicité.
"Decode → Execute → Memory" n'est clairement pas un "risc".
Aujourd'hui, le x86 est toujours plus complexe, et il me semble que la grammaire de l'assembleur x86 est ambiguë. Le décodeur est donc un monstre, ce qui permet à intel de mettre une sacré barrière à l'entré sur son marché. De l'autre coté le PowerPC dispose de plein de mode d'adressage, qui' l'éloigne aussi du risc. La taille des instructions des nouveaux ARM est mixte 16/32 bits.
On peut lire que les principes RISC ont "gagné", mais je pense surtout que les RISC sont devenus des CISC.
"simplement « sauter » l'étage mémoire du pipeline"
C'est simplement impossible car la mémoire peut aussi générer des données. Ce genre de bypass implique que l'étage suivant à des entrées multiples, et c'est tout, sauf simple.
"VLIW : Cependant, le bilan énergétique peut être désastreux (après tout, toutes les instructions sont exécutées, qu'elles soient utiles ou pas !)."
C'est même pire que ça, puisque le cpu peut passer sont temps à exécuter des instructions inutiles. Le fait de ne pas pouvoir faire correctement d’ordonnancement statique par le compilateur, en sans doute la raisons principale de l'échec de l'itanium qui devait prendre le relève du x86 pour le 64 bits. Mais il fallait des caches internes monstrueux à l'itanium pour aller vraiment plus vite que les Xeon (sauf en flottant).
" Les processeurs de type SPARC utilisent ces registres pour accélérer les changements de contexte entre threads/processus."
Perdu, les banc de registres à fenêtre , c'est pour les appels de fonctions. Sur SPARC, il y a 32 registres, 8 globaux et 3 paquets de 8 glissant sur une fenêtre de 128 registres ou plus. A chaque call, tout se décale de 8 registres, cela permet d'offrir 8 registres tout frais, sans faire de sauvegarde dans la pile (moins besoin de registre "callee save"). Par contre, une fois qu'il n'y plus de place, il y a une interruption pour tout sauver en mémoire. sur de gros programme avec beaucoup d'appel, cela peut tuer l'avantage de la simplification des fonctions.
Si le but est de faire des échanges de fichiers, le binaire de bitorrent peut être utiliser telquel. Il reste les notifications (le push) a coder. Mais on eut imaginer un message purement textuel que l'on mettre n'importe ou (forum, twitter, tribune,…).
On peut imaginer que chaque bloc est crypté avec un AES, la clef est dans le fichier chapeau. Il suffit qu'un fichier top, soit crypté avec gpg, pour que "ses amis" puissent lire l'arborescence, non ?
Pourquoi rester avec http ? On peut imaginer utiliser bittorrent pour diffuser les données. On peut même imaginer une sauvegarde par duplication chez les voisins, sécurisé par le cryptage symétrique, cela permet d'évacuer le problème de disponibilité des données si elles sont dupliquées et accessible ailleurs que sur un serveur perso.
On peut même utilisé un cloud sans avoir peur de la NSA (sauf si elle casse de l'AES ayant une clef issue d'un vrai hasard et non un hash de mot de passe trouvé par un humain)
Pourquoi avoir choisi sha1, et pas un truc encore complétement sûr comme sha256 ?
Pour gérer les mises à jour, pourquoi ne peut jouer sur un numero de version basé sur une date, dans le fichier chapeau ?
"les hommes viennent de mars et les femmes de vénus"
Pourquoi taper la-dessus ? C'est la mode chez les anthropologues ? CE livres parlent de façon de communiquer. donc le rapport avec la bouffe…
Et le plus drôle est que dans la préface l'auteur précise, que lors de ses conférences, il a vu plusieurs fois, les schémas qu'il décrit mais à l'envers.
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 7.
Franchement, dans le cycle de dev, l'optimisation en temps arrive à la toute fin, et en général, on a pas le temps, sauf si cela devient une "feature".
L'optimisation a aussi un coup de maintenance (code peu lisible, plus gros, etc…). Et souvent, cela ne vaut pas le cout d'optimiser. Le seul moyen de savoir si cela vaut le cout, c'est de faire des mesures (donc à la fin d'un dev).
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à -3.
eglibc n'est pas glibc, il est question de code static, ce qui est rare.
"La première sécurité est la liberté"
# quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 10. Dernière modification le 17 juillet 2013 à 10:21.
« ABC: Always Be Coding » est à rapprocher d'un autre article sur le même sujet, mais qui donne des conseils à ceux qui pose des questions.
L'auteur de cette article propose de savoir écrire les yeux fermé des algo comme A*, des parcours de graph et autre algo de trie. La facilité de faire cela serait un bon moyen d'être embauché.
Mais quel informaticien écrit en moyenne par mois, de tel algo ? Personne ou presque. Un codeur passe son temps à architecturer du code, prévoir plus ou moins l'avenir, revoir les besoins du "clients", debuguer. Mais certain aucun temps à faire ce genre d'exercice.
Concernant les structures de données, il ne sert à rien d'avoir des collections complexe pour des tailles inférieurs à 100. Le O(1) cache souvent un cout fixe énorme, il ne faut pas jeter trop vite les bon vieux tableaux ou liste chainé.
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à 3.
Un logiciel se vérifier ? Comment ? Le moindre logiciel MS semble prendre des Go sur disque, comment vérifier ?
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à 2.
L'article parle de "team work" et que MS serait aller bien plus loin que les autres. En sachant tout cela, je ne comprends plus comment il serait possible pour une boite française un peu sensible, d'utiliser un seul logiciel ou service US.
"La première sécurité est la liberté"
# D'ou vient le nombre minimal ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Comment fonctionne Bitcoin. Évalué à 2.
Dans l'opération :
HASH ( bloc + nonce ) < XXX
D’où vient le XXX ? qui décide de sa valeur basse ?
"La première sécurité est la liberté"
[^] # Re: Bof
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Espionnage sous Linux ou délire paranoïaque ?. Évalué à 4.
Un bug subtile à la openbsd (de mémoire) a peu de chance d'être détecté. De plus, comment être sûr que le binaire qui tourne est le même que celui compilé ? Il est possible de faire des diff telquel ? Une backdoor ajouté par un compilateur, cela a été aussi déjà fait il y a longtemps. Et avec les méthodes de mise à jour en ligne, comment être sûr qu'une backdoor n'est pas ajouté en même temps ?
"La première sécurité est la liberté"
[^] # Re: p2p-wars ?
Posté par Nicolas Boulay (site web personnel) . En réponse au message Je retrouve pas... un texte sur linux, le LL et tout ça, en parodie de StarWars. Évalué à 4.
Surtout surtout, ne commencez pas à lire ! Vous allez perdre 3 jours de votre vie.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 7.
Les caches de µops étaient utilisé dans le Pentium 4, mais plus maintenant, cela prendre trop de place (sauf gestion de boucle).
Si ARM ne fait pas quelques intructions spécialisées pour tout ce qui est couteux (controlleur DRAM dans le cpu, instruction pour les hash, la compression, la crypto), ils se feront manger par intel.
La consomation statique est gérée depuis longtemps : on coupe tout (horloge et alimentation). Les téchniques sont connues. Le vrai défi c'est la consommation max à 100%, quand on navigue sur internet ou joue a Angry Bird.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 6.
En effet, Texas instrument avait ses propres usines orienté basse consommation, mais aujourd'hui utilise une fab coréenne comme tout le monde presque, sauf intel. Ils ont ainsi perdu leur avance sur la consommation.
L'avantage est tellement énorme de rester compatible PC, que jamais intel ne fera l'erreur d'inventer encore un nouveau truc. ARM n'a pas vraiment de définition d'architecture d'ordinateur, il suffit de voir les drviers linux de plateforme arm, pour le comprendre.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 4.
Le x86 peut contenir des sortes de vliw internes, c'est un peu loin des RISC.
"C'est aussi quelque chose de primordial à saisir pour appréhender les obstacles qu'a le x86 à franchir pour la basse consommation,"
Le seul problème de intel est son inertie interne, c'est tout. Le x86 a par exemple une densité de code très élèvé, supérieur à l'arm. C'est un avantage énorme pour l'efficacité du cache de code.
Intel a sorti, il y a 5 ans, un cpu qui consommait en sommeil autant qu'un ARM à 100%. Aujourd'hui, le dernier soc intel (medfield) consomme moins, soit moins de mips par watt qu'un arm.
"La première sécurité est la liberté"
[^] # Re: De la nécessité de faire des incantations vaudou sur le code
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 5.
Et en plus, l'itanuim était un des seul processeurs VLIW supporté par gcc, difficile de faire fonctionner les optimisations dédiers au coeur superscalaire. Le seul autre VLIW un peu connu est le DSP c6000 de chez Ti.
"La première sécurité est la liberté"
[^] # Re: quelques trucs !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 2.
Je pensais à thumb2 pour arm.
La dizaine d'octet se trouve surtout avec les instructions qui peuvent avoir 2 adresses mémoire immédiat en dure. C'est long mais pas trop complexe.
"La première sécurité est la liberté"
[^] # Re: quelques trucs !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 2.
Je pense aussi que je me trompe, et que l'étage Ex dans le cas d'un load sert à faire des calculs d'adresse.
Dans un cpu moderne, c'est complètement séparé.
"La première sécurité est la liberté"
[^] # Re: De la nécessité de faire des incantations vaudou sur le code
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 5.
tu viens de réinventer "Lisaac" ! (Mais il est mort)
"La première sécurité est la liberté"
# quelques trucs !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 7. Dernière modification le 05 juillet 2013 à 16:01.
"en pratique, chaque instruction est ensuite décomposée en micro-instructions qui suivent les principes de RISC."
Le ISC de RISC et CISC, veut dire "instruction set computer". On parle du jeu d'instruction et pas du tout de la micro-architecture interne. Le but premier des mips et sparc, les 1ers RISC, était de réduire la taille du pipeline en ayant l'unité de load/store bien séparé de l'ALU. Le nombre réduit de mode d'adressage (le moyen de choper les data, ici par registre quasi exclusivement) était aussi un avantage de simplicité.
"Decode → Execute → Memory" n'est clairement pas un "risc".
Aujourd'hui, le x86 est toujours plus complexe, et il me semble que la grammaire de l'assembleur x86 est ambiguë. Le décodeur est donc un monstre, ce qui permet à intel de mettre une sacré barrière à l'entré sur son marché. De l'autre coté le PowerPC dispose de plein de mode d'adressage, qui' l'éloigne aussi du risc. La taille des instructions des nouveaux ARM est mixte 16/32 bits.
On peut lire que les principes RISC ont "gagné", mais je pense surtout que les RISC sont devenus des CISC.
"simplement « sauter » l'étage mémoire du pipeline"
C'est simplement impossible car la mémoire peut aussi générer des données. Ce genre de bypass implique que l'étage suivant à des entrées multiples, et c'est tout, sauf simple.
"VLIW : Cependant, le bilan énergétique peut être désastreux (après tout, toutes les instructions sont exécutées, qu'elles soient utiles ou pas !)."
C'est même pire que ça, puisque le cpu peut passer sont temps à exécuter des instructions inutiles. Le fait de ne pas pouvoir faire correctement d’ordonnancement statique par le compilateur, en sans doute la raisons principale de l'échec de l'itanium qui devait prendre le relève du x86 pour le 64 bits. Mais il fallait des caches internes monstrueux à l'itanium pour aller vraiment plus vite que les Xeon (sauf en flottant).
" Les processeurs de type SPARC utilisent ces registres pour accélérer les changements de contexte entre threads/processus."
Perdu, les banc de registres à fenêtre , c'est pour les appels de fonctions. Sur SPARC, il y a 32 registres, 8 globaux et 3 paquets de 8 glissant sur une fenêtre de 128 registres ou plus. A chaque call, tout se décale de 8 registres, cela permet d'offrir 8 registres tout frais, sans faire de sauvegarde dans la pile (moins besoin de registre "callee save"). Par contre, une fois qu'il n'y plus de place, il y a une interruption pour tout sauver en mémoire. sur de gros programme avec beaucoup d'appel, cela peut tuer l'avantage de la simplification des fonctions.
"La première sécurité est la liberté"
[^] # Re: Que du bon
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le noyau Linux 3.10 est sorti. Évalué à 3.
Et pouvoir ou pas basculer sur les drivers propriétaires juste pour lancer un jeu, et garder nouveau le reste du temps, c'est prévu ?
"La première sécurité est la liberté"
# mouais...
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Le thème surprise de linuxfr.org ce soir.. Évalué à 6.
C'est pas mal. Sauf que sur un écran 16/9, il doit y a avoir 40% de bande marron inutile.
"La première sécurité est la liberté"
[^] # Re: Petites précisions
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Camlistore, système de stockage universel, opensource et protégeant de la vie privée?. Évalué à 2.
Si le but est de faire des échanges de fichiers, le binaire de bitorrent peut être utiliser telquel. Il reste les notifications (le push) a coder. Mais on eut imaginer un message purement textuel que l'on mettre n'importe ou (forum, twitter, tribune,…).
"Quelles mises à jour?"
Celle d'une donnée, un blob.
"La première sécurité est la liberté"
[^] # Re: Petites précisions
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Camlistore, système de stockage universel, opensource et protégeant de la vie privée?. Évalué à 2.
J'ai plein de question !
On peut imaginer que chaque bloc est crypté avec un AES, la clef est dans le fichier chapeau. Il suffit qu'un fichier top, soit crypté avec gpg, pour que "ses amis" puissent lire l'arborescence, non ?
Pourquoi rester avec http ? On peut imaginer utiliser bittorrent pour diffuser les données. On peut même imaginer une sauvegarde par duplication chez les voisins, sécurisé par le cryptage symétrique, cela permet d'évacuer le problème de disponibilité des données si elles sont dupliquées et accessible ailleurs que sur un serveur perso.
On peut même utilisé un cloud sans avoir peur de la NSA (sauf si elle casse de l'AES ayant une clef issue d'un vrai hasard et non un hash de mot de passe trouvé par un humain)
Pourquoi avoir choisi sha1, et pas un truc encore complétement sûr comme sha256 ?
Pour gérer les mises à jour, pourquoi ne peut jouer sur un numero de version basé sur une date, dans le fichier chapeau ?
"La première sécurité est la liberté"
[^] # Re: Il y a une meilleure explication
Posté par Nicolas Boulay (site web personnel) . En réponse au journal La viande combat les inégalités et les plans démoniaques. Évalué à -1.
"les hommes viennent de mars et les femmes de vénus"
Pourquoi taper la-dessus ? C'est la mode chez les anthropologues ? CE livres parlent de façon de communiquer. donc le rapport avec la bouffe…
Et le plus drôle est que dans la préface l'auteur précise, que lors de ses conférences, il a vu plusieurs fois, les schémas qu'il décrit mais à l'envers.
"La première sécurité est la liberté"
[^] # Re: 3x plus rapide sur mon benchmark pas représentatif
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche 22 v’là Firefox !. Évalué à 2.
oui, après j'ai retenu de tête le score de Fx21, et tu commences à me faire douter.
Pour accélérer l'asm.js, il faut tout de même un comportement du compilateur qui peut agir aussi sur du code classique mais bien écrit.
"La première sécurité est la liberté"
# 3x plus rapide sur mon benchmark pas représentatif
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche 22 v’là Firefox !. Évalué à 9.
J'ai testé le js sur mon benchmark préféré : le boot de linux dans une machine virtuelle de x86 en javascript : Je passe de 14s à 5.4s !
http://bellard.org/jslinux/
"La première sécurité est la liberté"
[^] # Re: drôle d'interrogation
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Orbis OS le système qui ferait fonctionner la PS4 serait-il un FreeBSD ou un OpenSuse ?. Évalué à 3.
tu te marre mais avec une box standard connecté en permanence avec une webcam dessus, c'est tentant pour tout un tas de pirate.
"La première sécurité est la liberté"
[^] # Re: La question a 1 giga yuan...
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Sortie du Top 500 de juin 2013. Évalué à 2.
Et le pire est qu'un cluster pas trop chère devient obsolète en 3 ans. Finalement un PC de compétition à l'air très rentable.
"La première sécurité est la liberté"