Uwaga: ta odpowiedź nie dotyczy fizyki, ale cichych błędów pamięci w modułach pamięci innych niż ECC. Niektóre błędy mogą pochodzić z kosmosu, a niektóre z wewnętrznej przestrzeni pulpitu.
Istnieje kilka badań dotyczących awarii pamięci ECC w dużych farmach serwerów, takich jak klastry CERN i centra danych Google. Sprzęt klasy serwerowej z ECC może wykrywać i poprawiać wszystkie błędy bitów oraz wykrywać wiele błędów bitów.
Możemy założyć, że istnieje wiele komputerów stacjonarnych spoza ECC (i smartfonów spoza ECC). Jeśli sprawdzimy dokumenty pod kątem współczynników błędów, które można skorygować za pomocą ECC (pojedyncze bitflipy), możemy poznać współczynnik cichego uszkodzenia pamięci w pamięci innej niż ECC.
Badanie CERN 2007 na dużą skalę „Integralność danych” : dostawcy deklarują „ współczynnik błędu bitowego 10–12 dla swoich modułów pamięci ”, „ zaobserwowany poziom błędu jest o 4 rzędy wielkości niższy niż oczekiwano ”. W przypadku zadań wymagających dużej ilości danych (8 GB / s odczytu pamięci) oznacza to, że pojedyncza zmiana bitów może występować co minutę ( 10-12 BER dostawców) lub raz na dwa dni ( 10-16 BER).
Artykuł Google 2009 „DRAM Errors in the Wild: A Large-Scale Field Study” mówi, że może istnieć do 25000-75000 jednobitowych FIT na Mbit ( awarie czasu na miliard godzin ), co jest równe 1 - 5 bitów błędów na godzinę dla 8 GB pamięci RAM po moich obliczeniach. Papier mówi to samo: „ oznacza możliwe do skorygowania poziomy błędów 2000–6000 na GB rocznie ”.
Raport Sandia z 2012 r. „Wykrywanie i korygowanie cichego uszkodzenia danych w obliczeniach wielkoskalowych o wysokiej wydajności” : „podwójne odwrócenie bitów uznano za mało prawdopodobne”, ale w gęstej matrycy Cray XT5 firmy ORNL są one „w tempie jednego dnia dla 75 000+ modułów DIMM”, nawet z ECC. Błędy jednobitowe powinny być wyższe.
Tak więc, jeśli program ma duży zestaw danych (kilka GB) lub ma wysoką szybkość odczytu lub zapisu w pamięci (GB / s lub więcej) i działa przez kilka godzin, możemy spodziewać się nawet kilku cichych bitów na sprzęcie komputerowym. Ta szybkość nie jest wykrywana przez memtest, a moduły DRAM są dobre.
Długi klaster działa na tysiącach komputerów nieobsługujących ECC, takich jak sieci grid BOINC w Internecie zawsze będą miały błędy wynikające z odwracania bitów pamięci, a także z cichych błędów dysku i sieci.
A w przypadku większych maszyn (10 tysięcy serwerów), nawet z ochroną ECC przed błędami jednobitowymi, jak widzimy w raporcie Sandii z 2012 roku, każdego dnia mogą występować podwójne bity, więc nie będziesz mieć szansy na uruchomienie równoległego pełnego rozmiaru program na kilka dni (bez regularnego sprawdzania i restartowania od ostatniego dobrego punktu kontrolnego w przypadku podwójnego błędu). Ogromne maszyny również będą miały bit-flipy w swoich pamięciach podręcznych i rejestrach procesora (wyzwalacze zarówno architektoniczne, jak i wewnętrzne chipów, np. W ścieżce danych ALU), ponieważ nie wszystkie z nich są chronione przez ECC.
PS: Będzie znacznie gorzej, jeśli moduł DRAM będzie zły. Na przykład zainstalowałem nową pamięć DRAM w laptopie, który zmarł kilka tygodni później. Zaczęło dawać dużo błędów pamięci. Co otrzymuję: laptop zawiesza się, restartuje Linux, uruchamia fsck, znajduje błędy w głównym systemie plików i mówi, że chce zrestartować się po naprawieniu błędów. Ale przy każdym ponownym uruchomieniu (zrobiłem ich około 5-6) nadal występują błędy w głównym systemie plików.