Nota: questa risposta non riguarda la fisica, ma gli errori di memoria silenziosa con moduli di memoria non ECC. Alcuni errori possono provenire dallo spazio e altri - dallo spazio interno del desktop.
Esistono diversi studi sugli errori di memoria ECC su server farm di grandi dimensioni come cluster CERN e data center di Google. L'hardware di classe server con ECC è in grado di rilevare e correggere tutti gli errori a singolo bit e rilevare molti errori multi-bit.
Possiamo supporre che ci siano molti desktop non ECC (e smartphone mobili non ECC). Se controlliamo i documenti per i tassi di errore correggibili ECC (bitflip singoli), possiamo conoscere il tasso di corruzione della memoria silenziosa sulla memoria non ECC.
Studio su larga scala del CERN 2007 "Integrità dei dati" : i fornitori dichiarano " Tasso di errore bit di 10-12 per i loro moduli di memoria ", " un tasso di errore osservato è di 4 ordini di grandezza inferiore al previsto ". Per le attività ad alta intensità di dati (8 GB / s di lettura della memoria) ciò significa che può capovolgere un singolo bit ogni minuto ( 10-12 BER fornitori) o una volta ogni due giorni ( 10-16 BER).
L'articolo di Google "Errori di DRAM allo stato brado: uno studio sul campo su larga scala" del 2009 afferma che possono esserci fino a 25000-75000 FIT a un bit per Mbit ( guasti nel tempo per miliardo di ore ), che equivale a 1 - 5 bit errori all'ora per 8 GB di RAM dopo i miei calcoli. Lo stesso documento afferma: " tassi di errore corretti medi di 2000–6000 per GB all'anno ".
Rapporto Sandia del 2012 "Rilevazione e correzione della corruzione silenziosa dei dati per il calcolo ad alte prestazioni su larga scala" : "il doppio bit era ritenuto improbabile" ma al denso Cray XT5 di ORNL sono "al ritmo di uno al giorno per oltre 75.000 DIMM" con ECC. E gli errori a bit singolo dovrebbero essere più alti.
Quindi, se il programma ha un set di dati di grandi dimensioni (diversi GB) o ha un'elevata velocità di lettura o scrittura della memoria (GB / se più) e funziona per diverse ore, possiamo aspettarci fino a diversi lanci di bit silenziosi sull'hardware del desktop. Questa velocità non è rilevabile dal memtest e i moduli DRAM sono buoni.
I cluster lunghi vengono eseguiti su migliaia di PC non ECC, come il grid computing su Internet di BOINC avrà sempre errori dovuti a salti di memoria e anche a errori silenziosi del disco e della rete.
E per macchine più grandi (10 mila server) anche con protezione ECC da errori a bit singolo, come vediamo nel rapporto di Sandia del 2012, ci possono essere capovolgimenti a doppio bit ogni giorno, quindi non avrai alcuna possibilità di eseguire parallelismi a grandezza naturale programma per diversi giorni (senza checkpoint regolari e riavvio dall'ultimo checkpoint valido in caso di doppio errore). Le enormi macchine avranno anche bit-flip nella loro cache e nei registri della cpu (trigger sia di architettura che di chip interni, ad esempio nel datapath ALU), perché non tutti sono protetti da ECC.
PS: Le cose andranno molto peggio se il modulo DRAM è difettoso. Ad esempio, ho installato la nuova DRAM nel laptop, che è morto diverse settimane dopo. Ha iniziato a dare molti errori di memoria. Cosa ottengo: il laptop si blocca, si riavvia Linux, esegue fsck, trova errori sul filesystem di root e dice che vuole fare il riavvio dopo aver corretto gli errori. Ma ad ogni riavvio successivo (ne ho eseguiti circa 5-6), nel filesystem di root sono ancora presenti errori.