529 votes

Rayons cosmiques : quelle est la probabilité qu'ils affectent un programme ?

Une fois de plus, j'ai participé à une revue de conception et j'ai été confronté à l'affirmation selon laquelle la probabilité d'un scénario particulier était "inférieure au risque que les rayons cosmiques" affectent le programme, et il m'est apparu que je n'avais pas la moindre idée de ce qu'est cette probabilité.

"Depuis 2 -128 est de 1 sur 340282366920938463463374607431768211456, je pense que nous avons raison de tenter notre chance ici, même si ces calculs sont erronés par un facteur de quelques milliards... Nous avons beaucoup plus de risques que les rayons cosmiques nous bousillent, je crois."

Ce programmeur a-t-il raison ? Quelle est la probabilité qu'un rayon cosmique frappe un ordinateur et affecte l'exécution du programme ?

301voto

KennyTM Points 232647

Desde Wikipedia :

Selon des études réalisées par IBM dans les années 1990, les ordinateurs subissent généralement une erreur due aux rayons cosmiques pour 256 mégaoctets de RAM par mois. [15]

Cela signifie une probabilité de 3,7 × 10 -9 par octet et par mois, soit 1,4 × 10 -15 par octet et par seconde. Si votre programme s'exécute pendant 1 minute et occupe 20 Mo de RAM, la probabilité d'échec est la suivante

                 60 × 20 × 1024²
1 - (1 - 1.4e-15)                = 1.8e-6 a.k.a. "5 nines"

La vérification des erreurs peut contribuer à réduire les conséquences de l'échec. En outre, en raison de la taille plus compacte des puces, comme l'a fait remarquer Joe, le taux de défaillance pourrait être différent de ce qu'il était il y a 20 ans.

87voto

ire_and_curses Points 32802

Apparemment, ce n'est pas négligeable. De cet article de New Scientist , une citation d'une demande de brevet d'Intel :

"Des pannes d'ordinateur induites par les rayons cosmiques se sont produites et devraient augmenter en fréquence à mesure que la taille des dispositifs (par exemple, les transistors) diminue dans les puces. Il est prévu que ce problème devienne un limiteur majeur de la fiabilité des ordinateurs au cours de la prochaine décennie. "

Vous pouvez lire le brevet complet ici .

51voto

osgx Points 28675

Note : Cette réponse ne concerne pas la physique, mais les erreurs de mémoire silencieuses avec les modules de mémoire non-ECC. Certaines de ces erreurs peuvent provenir de l'espace extérieur, d'autres de l'espace intérieur de l'ordinateur.

Il existe plusieurs études sur les défaillances de la mémoire ECC dans les grandes fermes de serveurs comme les clusters du CERN et les centres de données de Google. Le matériel de classe serveur doté de l'ECC peut détecter et corriger toutes les erreurs à un seul bit et détecter de nombreuses erreurs à plusieurs bits.

Nous pouvons supposer qu'il y a beaucoup d'ordinateurs de bureau non CEC (et de smartphones mobiles non CEC). Si nous vérifions les articles sur les taux d'erreurs corrigibles par ECC (bitflips simples), nous pouvons connaître le taux de corruptions silencieuses de la mémoire non ECC.

Donc, si le programme a un grand ensemble de données (plusieurs Go), ou a un taux élevé de lecture ou d'écriture de la mémoire (Go/s ou plus), et qu'il fonctionne pendant plusieurs heures, alors nous pouvons nous attendre à plusieurs flips de bits silencieux sur le matériel de bureau. Ce taux n'est pas détectable par memtest, et les modules DRAM sont bons.

Les longues séries de clusters sur des milliers de PC non ECC, comme le calcul en grille à l'échelle de l'internet de BOINC, comporteront toujours des erreurs dues à des erreurs binaires de mémoire ainsi qu'à des erreurs silencieuses de disque et de réseau.

Et pour les plus grosses machines (10 000 serveurs), même avec une protection ECC contre les erreurs d'un seul bit, comme nous le voyons dans le rapport 2012 de Sandia, il peut y avoir des flips de deux bits chaque jour, de sorte que vous n'aurez aucune chance d'exécuter un programme parallèle de taille complète pendant plusieurs jours (sans point de contrôle régulier et en redémarrant à partir du dernier bon point de contrôle en cas de double erreur). Les énormes machines auront également des bit-flips dans leurs caches et registres cpu (à la fois architecturaux et déclencheurs internes de la puce, par exemple dans le chemin de données ALU), car ils ne sont pas tous protégés par ECC.

PS : Les choses seront bien pires si le module DRAM est mauvais. Par exemple, j'ai installé une nouvelle DRAM dans un ordinateur portable, qui a rendu l'âme plusieurs semaines plus tard. Il a commencé à donner beaucoup d'erreurs de mémoire. Ce que j'obtiens : l'ordinateur portable se bloque, linux redémarre, exécute fsck, trouve des erreurs sur le système de fichiers racine et dit qu'il veut redémarrer après avoir corrigé les erreurs. Mais à chaque redémarrage suivant (j'en ai fait environ 5-6), il y a toujours des erreurs dans le système de fichiers racine.

30voto

JesperE Points 34356

Wikipedia cite un étude réalisée par IBM dans les années 90, suggérant que "les ordinateurs connaissent généralement une erreur due aux rayons cosmiques pour 256 mégaoctets de RAM par mois". Malheureusement, la citation était celle d'un article de Scientific American, qui ne donnait pas d'autres références. Personnellement, je trouve ce chiffre très élevé, mais peut-être que la plupart des erreurs de mémoire induites par les rayons cosmiques ne causent pas de problèmes réels ou perceptibles.

D'autre part, les personnes qui parlent de probabilités lorsqu'il s'agit de scénarios logiciels n'ont généralement aucune idée de ce dont elles parlent.

29voto

Kevin Crowell Points 5180

Eh bien, les rayons cosmiques ont apparemment causé un dysfonctionnement de l'électronique dans les voitures Toyota, donc je dirais que la probabilité est très élevée :)

Les rayons cosmiques sont-ils vraiment à l'origine des problèmes de Toyota ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X