Tu veux dire que les automatismes autour de BGP ont fonctionné mais qu'une autre boulette en est à l'origine ? En gros, BGP n'est qu'un symptome et non la cause racine. C'est ça ?
Je pense que la mémoire utilisé pour le cache à simplement 2 ports de lecture pour un seul port d'écriture. Dans un ASIC, les 2 ports sont séparés. Dupliquer les ports de lecture est plus facile que pour l'écriture.
Je devrais tenter, mais je n'y crois pas trop. C'est tout de même un algo totalement memory bound à la base. J'arrive à faire mieux avec __builtin_prefetch(v+i+256).
sans utilisé de SSE, c'est le code le plus rapide que j'arrive à faire. Je triche un peu avec le v[16] comme prefetch.
```
size_t find_int_c_unrolled_8(const int k, const int* v, size_t n)
{
size_t i = 0;
int t=0;
for (; n - i >= 8; i += 8,v+=8)
{
t |= v[16];
if (v[0] == k) return i;
if (v[1] == k) return i + 1;
if (v[2] == k) return i + 2;
if (v[3] == k) return i + 3;
if (v[4] == k) return i + 4;
if (v[5] == k) return i + 5;
if (v[6] == k) return i + 6;
if (v[7] == k) return i + 7;
}
volatile int tt =t;
for (; i != n; i++,v++)
if (v[0] == k)
return i;
En fait, je pense que find est déjà optimisé mais pour des tailles de l'ordre de la centaine. Personne ne doit faire de recherche linéaire sur 1 millions d'élément.
Souvent les codes rapides ont un "startup time" important qui les invalident pour les petites tailles qui sont les plus utilisé.
Le déroulage de boucle est fait depuis longtemps par GCC. Je suis assez étonné de ce que tu écris. Vers 2000, j'avais écrit un code de multiplication de matrice, et GCC déroulait 16 fois tout seul.
C'est une erreur de croire ça. Les jumps se prédisent, pas les valeurs. Le seul cas ou virer les jumps est bien, c'est dans le cas ou la prédiction se vautre tout le temps (parsing JSON, par exemple).
De mémoire, la règle c'est "forward taken, backward not taken", si l'adresse n'est pas déjà connue. Ici, le test est toujours faux, donc la prédiction marche à fond.
Par contre, si vous voulez un code déroulage de boucle, il faut regarder le code RAID soft de Linux. Typiquement, il utilise V+=8 dans la boucle for et ensuite v[0] v[1] v[2]… dans le corps de boucle, l'usage de valeur fixe permet d'économiser des instructions.
50% ne change pas grand chose, il faut diviser par 10 pour avoir un impact.
Et de toute façon a cause des Ddos tu es obligé de largement surdimensionner.
passe à côté du sujet : moins de like/chatons/youtube pour écouter de la musique/stocker ses photos en ligne = moins d'équipements réseau, moins de serveurs, moins de matière pour les fabriquer.
En gros, cela revient à vouloir calculer pour ton canapé la consommation de CO2 à l'heure où tu es assis dessus !
Moins s'assoir ne change rien à la création de CO2. C'est la création de l'équipement qui produit du CO2 et pas du tout son taux d'usage. Dans l'électronique, les serveurs représentent peu dans le total, la part des clients est majoritaire. Et dans les clients la plus grosse part n'est pas dû aux smartphones, mais aux télés.
Est-ce que la baisse des usages baisserait la commande de nouveau appareil ? A la marge sans doute, mais la durée de vie d'un équipement réseau est court (5 ans max). Et le renouveler par du matériel récent produit exactement la même quantité de CO2 que le matériel ancien, sauf que le nouveau est 10x plus rapide.
Ils ont aussi tapé sur Netflix. Or les appliances (500W) de Netflix sortent du 80Gbits et une dizaine de machines chez les FAI couvrent les besoins français.
D'autre part, se reposer sur les passes d'optimisations de LLVM, c'est un peu espérer que les passes d'optimisations génériques ou penser pour le C et le C++ vont optimiser du code plus fonctionnel un peu par accident.
A l'époque de Lisaac qui avait été en tête du langage shootout, le compilo C rajoutait une couche d'optimisation. Lisaac produisait toujours du C. Un code sans optim ou avec optim était accélérer en moyenne de +15% par le compilateur C.
Il y a des optim très difficile à faire au niveau du C (transformer les appels virtuels en simple call) et d'autres bas niveau très difficile à faire à haut niveau (scheduling d'instructions)
D'après l'article, la gestion d'erreur est encore foireuse : pas de montage degradé automatique, pas de reconstruction auto (et gestion du split brain), pas de decouverte auto, pas de hot ou cold spare,…
En prod, je veux que sur alarme, je rajoute un disque et il le prenne en compte directement (comme pour du raid hard) ou avec une simple commande "add".
Oui mais zfs a montré que cela simplifie. Par exemple, la reconstruction d'un raid se fait block a block sur la partition entière. Zfs et btrfs reconstruisent seulement les fichiers.
Cela m'étonnerait qu'un filtre suffise pour "la personnalité de l'auteur" transparaisse dans l’œuvre. Pour avoir la protection du droit d'auteur, il faut une œuvre "original". (cf la photo de yourte dont le tribunal a refusé un droit d'auteur)
@ratzillas (twitter) a déjà fait des conférences sur le sujet. La France a un système d'alerte très vétuste ou inexistant. Le comble est que l'ETSI qui fabrique les normes est en France.
[^] # Re: encore BGP ?
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Understanding How Facebook Disappeared from the Internet. Évalué à 3.
Tu veux dire que les automatismes autour de BGP ont fonctionné mais qu'une autre boulette en est à l'origine ? En gros, BGP n'est qu'un symptome et non la cause racine. C'est ça ?
"La première sécurité est la liberté"
[^] # Re: Efficacité - Borne sup
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 4.
Je pense que la mémoire utilisé pour le cache à simplement 2 ports de lecture pour un seul port d'écriture. Dans un ASIC, les 2 ports sont séparés. Dupliquer les ports de lecture est plus facile que pour l'écriture.
"La première sécurité est la liberté"
[^] # Re: encore BGP ?
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Understanding How Facebook Disappeared from the Internet. Évalué à 3.
Il y a déjà eu des outages complet à cause de DNS ? Le service DNS semble un peu plus costaux par construction, non ?
"La première sécurité est la liberté"
# encore BGP ?
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Understanding How Facebook Disappeared from the Internet. Évalué à 3.
C'est moi ou la plus part des gros "outages" de GAFAM sont dû à des problèmes de configuration BGP ?
"La première sécurité est la liberté"
[^] # Re: le plus rapide en code simple
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 4.
Je devrais tenter, mais je n'y crois pas trop. C'est tout de même un algo totalement memory bound à la base. J'arrive à faire mieux avec __builtin_prefetch(v+i+256).
Il faudrait tester le 64 bits.
"La première sécurité est la liberté"
# le plus rapide en code simple
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 4.
sans utilisé de SSE, c'est le code le plus rapide que j'arrive à faire. Je triche un peu avec le v[16] comme prefetch.
```
size_t find_int_c_unrolled_8(const int k, const int* v, size_t n)
{
size_t i = 0;
int t=0;
for (; n - i >= 8; i += 8,v+=8)
{
t |= v[16];
if (v[0] == k) return i;
if (v[1] == k) return i + 1;
if (v[2] == k) return i + 2;
if (v[3] == k) return i + 3;
if (v[4] == k) return i + 4;
if (v[5] == k) return i + 5;
if (v[6] == k) return i + 6;
if (v[7] == k) return i + 7;
}
volatile int tt =t;
for (; i != n; i++,v++)
if (v[0] == k)
return i;
return n;
}
```
"La première sécurité est la liberté"
[^] # Re: Code de haut niveau
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 7.
On pourrait aussi optimiser find.
En fait, je pense que find est déjà optimisé mais pour des tailles de l'ordre de la centaine. Personne ne doit faire de recherche linéaire sur 1 millions d'élément.
Souvent les codes rapides ont un "startup time" important qui les invalident pour les petites tailles qui sont les plus utilisé.
"La première sécurité est la liberté"
[^] # Re: J'veux pas faire le relou mais...
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 4.
Le déroulage de boucle est fait depuis longtemps par GCC. Je suis assez étonné de ce que tu écris. Vers 2000, j'avais écrit un code de multiplication de matrice, et GCC déroulait 16 fois tout seul.
"La première sécurité est la liberté"
[^] # Re: Sans SSE
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 6.
C'est une erreur de croire ça. Les jumps se prédisent, pas les valeurs. Le seul cas ou virer les jumps est bien, c'est dans le cas ou la prédiction se vautre tout le temps (parsing JSON, par exemple).
De mémoire, la règle c'est "forward taken, backward not taken", si l'adresse n'est pas déjà connue. Ici, le test est toujours faux, donc la prédiction marche à fond.
Par contre, si vous voulez un code déroulage de boucle, il faut regarder le code RAID soft de Linux. Typiquement, il utilise V+=8 dans la boucle for et ensuite v[0] v[1] v[2]… dans le corps de boucle, l'usage de valeur fixe permet d'économiser des instructions.
"La première sécurité est la liberté"
[^] # Re: fiche de lecture de S. Bortzmeyer
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Quand le numérique détruit la planète (Le Monde diplomatique). Évalué à 3.
50% ne change pas grand chose, il faut diviser par 10 pour avoir un impact.
Et de toute façon a cause des Ddos tu es obligé de largement surdimensionner.
"La première sécurité est la liberté"
[^] # Re: fiche de lecture de S. Bortzmeyer
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Quand le numérique détruit la planète (Le Monde diplomatique). Évalué à 3.
C'est très théorique tout ça. Si on savait d’où venait les pannes à la construction, les produits seraient moins fragiles.
"La première sécurité est la liberté"
[^] # Re: fiche de lecture de S. Bortzmeyer
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Quand le numérique détruit la planète (Le Monde diplomatique). Évalué à 2.
La durée de vie s'est compliqué. Le prix ne serait pas le même (redondance de partout) et donc la production de CO2.
"La première sécurité est la liberté"
[^] # Re: fiche de lecture de S. Bortzmeyer
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Quand le numérique détruit la planète (Le Monde diplomatique). Évalué à 3. Dernière modification le 01 octobre 2021 à 09:48.
En gros, cela revient à vouloir calculer pour ton canapé la consommation de CO2 à l'heure où tu es assis dessus !
Moins s'assoir ne change rien à la création de CO2. C'est la création de l'équipement qui produit du CO2 et pas du tout son taux d'usage. Dans l'électronique, les serveurs représentent peu dans le total, la part des clients est majoritaire. Et dans les clients la plus grosse part n'est pas dû aux smartphones, mais aux télés.
Est-ce que la baisse des usages baisserait la commande de nouveau appareil ? A la marge sans doute, mais la durée de vie d'un équipement réseau est court (5 ans max). Et le renouveler par du matériel récent produit exactement la même quantité de CO2 que le matériel ancien, sauf que le nouveau est 10x plus rapide.
Ils ont aussi tapé sur Netflix. Or les appliances (500W) de Netflix sortent du 80Gbits et une dizaine de machines chez les FAI couvrent les besoins français.
"La première sécurité est la liberté"
# Fork ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Grommunio - une nouvelle alternative à MS Exchange. Évalué à 10.
Mais pourquoi des forks !? On sait très bien qu'ils seront totalement incapable de tenir sur la durée avec autant de fork à gérer.
"La première sécurité est la liberté"
[^] # Re: Bytecode VS natif
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche OCaml en 2021. Évalué à 6.
A l'époque de Lisaac qui avait été en tête du langage shootout, le compilo C rajoutait une couche d'optimisation. Lisaac produisait toujours du C. Un code sans optim ou avec optim était accélérer en moyenne de +15% par le compilateur C.
Il y a des optim très difficile à faire au niveau du C (transformer les appels virtuels en simple call) et d'autres bas niveau très difficile à faire à haut niveau (scheduling d'instructions)
"La première sécurité est la liberté"
[^] # Re: Quel est l'intéret d'avoir un filesystem qui s'occupe de l'aggrégation des disques (raid), etc
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Examining btrfs, Linux’s perpetually half-finished filesystem - arstechnica (via OSnews). Évalué à 4. Dernière modification le 26 septembre 2021 à 10:31.
D'après l'article, la gestion d'erreur est encore foireuse : pas de montage degradé automatique, pas de reconstruction auto (et gestion du split brain), pas de decouverte auto, pas de hot ou cold spare,…
En prod, je veux que sur alarme, je rajoute un disque et il le prenne en compte directement (comme pour du raid hard) ou avec une simple commande "add".
"La première sécurité est la liberté"
[^] # Re: Quel est l'intéret ...
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Examining btrfs, Linux’s perpetually half-finished filesystem - arstechnica (via OSnews). Évalué à 3.
Comment tu veux faire ça ? Il faudrait une deuxieme array qui te donnerait les blocs utile.
"La première sécurité est la liberté"
[^] # Re: Quel est l'intéret ...
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Examining btrfs, Linux’s perpetually half-finished filesystem - arstechnica (via OSnews). Évalué à 4.
Oui mais zfs a montré que cela simplifie. Par exemple, la reconstruction d'un raid se fait block a block sur la partition entière. Zfs et btrfs reconstruisent seulement les fichiers.
"La première sécurité est la liberté"
[^] # Re: Malheureusement
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Le travail de David Revoy pompé pour en faire des NFT. Évalué à 3.
Cela m'étonnerait qu'un filtre suffise pour "la personnalité de l'auteur" transparaisse dans l’œuvre. Pour avoir la protection du droit d'auteur, il faut une œuvre "original". (cf la photo de yourte dont le tribunal a refusé un droit d'auteur)
"La première sécurité est la liberté"
[^] # Re: re: CPU Ex0170 Évoluer les appels d'urgence
Posté par Nicolas Boulay (site web personnel) . En réponse au journal CPU Ex0170 Évoluer les appels d'urgence. Évalué à 5.
@ratzillas (twitter) a déjà fait des conférences sur le sujet. La France a un système d'alerte très vétuste ou inexistant. Le comble est que l'ETSI qui fabrique les normes est en France.
"La première sécurité est la liberté"
[^] # Re: Le nucléaire n'est pas durable
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Les obligations vertes de l’UE excluent le nucléaire ... mais pas le gaz russo-allemand . Évalué à 5.
C'est vrai que le GIEC ne fait pas de modèle, il a appelle cela des "scenarios". Ceux dont le résultat est le plus bas sont avec un fond de nucléaire.
Sinon, c'est l'histoire d'écolo belge qui ouvrent 4 centrale à gaz.
"La première sécurité est la liberté"
# tient...
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Livre pour expliquer l'architecture informatique aux enfants. Évalué à 4.
J avais commencé une histoire sur le sujet avec la meme forme qu il etait une fois la vie. Faudrait que je continue.
"La première sécurité est la liberté"
[^] # Re: Et combien avec YOGA ?
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Vector? Raster? Why not both!. Évalué à 4.
Il teste plusieurs format d'image dont PNG. On pourrais aussi imaginer que YOGA ouvre des SVG pour optimiser les images contenus.
"La première sécurité est la liberté"
# Et combien avec YOGA ?
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Vector? Raster? Why not both!. Évalué à 3.
Cela serait utile de voir si YOGA fait mieux :)
"La première sécurité est la liberté"
[^] # Re: Court terme vs éternité
Posté par Nicolas Boulay (site web personnel) . En réponse au lien Les obligations vertes de l’UE excluent le nucléaire ... mais pas le gaz russo-allemand . Évalué à 5.
Ce sont les seuls dangereux.
"La première sécurité est la liberté"