mboost-dp1

SXC - marinm

Programmer skal selv håndtere fejl i RAM

- Via Videnskab.dk - , indsendt af ktg

Når man arbejder med en computer, så er der en lille risiko for, at det RAM, man anvender, engang imellem kan blive ramt af en bit-fejl, der kan forårsage alt fra ubetydelige fejl til crash af en computer.

For at undgå den slags situationer, kan man vælge at anvende fejlkorrigerende RAM (ECC RAM), men i langt de fleste computere bliver det ikke brugt, da det koster ekstra.

I Aarhus sidder to forskere på Aarhus Universitet med, hvad de mener, kan skabe samme sikkerhed – algoritmer, der tager højde for fejl.

Professor Lars Arge og ph.d. Gerth Stølting Brodal arbejder til dagligt på Datalogisk Institut, hvor de forsøger at udvikle en algoritme, der kan få programmer til at fortsætte med at virke, selvom det løber ind i en fejl i et RAM-modul.

De to forskere har fået styr på teorien, nu skal den blot omsættes til praksis.





Gå til bund
Gravatar #1 - Daniel-Dane
8. jan. 2010 13:23
Og når de har fikset det, skal det sættes ind i OS'et.
Gravatar #2 - AlienDarkmind
8. jan. 2010 13:27
Kunne sku være fedt med sådan en funktion.. Er godt træt af de fejl der til tider sker i mine ram:S
Gravatar #3 - mathiass
8. jan. 2010 13:27
#1: Nej, det er ikke en generel løsning på RAM-fejl. Det er algoritmer som kan lave konkrete beregninger på trods af at RAM'ene laver fejl (under en vis smertegrænse). Sådan forstår jeg det i hvert fald.
Det er ganske relevant for beregninger som bliver lavet i eksempelvis Cloud systemer. Når en maskine crasher, så kan man bruge resultatet alligevel i stedet for at starte forfra.
Gravatar #4 - mathiass
8. jan. 2010 13:28
#2: Hvis RAM i din almindelige desktop laver fejl, så kan du udskifte dem for få hundrede kroner...
Gravatar #5 - bnm
8. jan. 2010 13:29
Beregninger med paritet? Uuuuuh </sarkasme>
Gravatar #6 - T-Hawk
8. jan. 2010 13:56
bnm (5) skrev:
Beregninger med paritet? Uuuuuh </sarkasme>

Tvivler på det er helt så simpelt.

Ved ikke hvad det præcis handler om, men ved da at Gerth er en ganske dygtig person.
Gravatar #7 - Utte
8. jan. 2010 14:00
#3
et cluster der er ikke kan håndtere nedbrud er et ret dårligt cluster.

Efter min mening skal man forvente nedbrud hele tiden. Så programmerne skal kunne håndtere disse problemer, feks. ved skrivning til disken.

Og et job der kører i et cluster er vel normalt delt op i så mange parralelle opgaver at et enkelt job måske tager få minutter at gennemføre på en anden pc i clusteret

Bare min mening.

Tror det ville være mere anvendeligt på private computere så man måske kunne undgå de få nedbrud det nu ville kunne redde.
Gravatar #8 - MEGAMASTER4000
8. jan. 2010 14:08
Så er det slut med fatal errors? :D
Gravatar #9 - Andos
8. jan. 2010 14:22
Heh jeg var lige til eksamen hos Gerth i forgårs i Advanced Algorithms & Data Structures. Troede han havde alt for travlt med at rette vores rapporter til at arbejde på den slags ting. ;)
Gravatar #10 - bani
8. jan. 2010 15:37
Hardware ECC for the win! Det koster marginalt mere at producere ECC RAM frem for ALM RAM. FIX det til alle pc'er. PROBLEM SOLVED
Gravatar #11 - TEJNI
8. jan. 2010 15:42
de selger det sikkert til microsoft.
skide godt at vi så slipper for at bruge extra penge på ECC ram.
Gravatar #12 - nbhansen
8. jan. 2010 15:46
#10 holy fuck, ring til Århus Universitet, der venter dig en doktor emeritus-grad for den indsigt!
Gravatar #13 - onepixel
8. jan. 2010 18:29
De får det bare til at lyde så simpelt, ud fra det der står lyder det som om det er noget helt nyt at lave algoritmer der håndter I/O fejl :-/

Jeg forstår ikke hvad det nye er. Næste artikel: Alle netværkspakker når ikke frem :-o #HORROR-SKRIG#
Gravatar #14 - ty
8. jan. 2010 19:05
Andos (9) skrev:
Heh jeg var lige til eksamen hos Gerth i forgårs i Advanced Algorithms & Data Structures. Troede han havde alt for travlt med at rette vores rapporter til at arbejde på den slags ting. ;)


Da ikke hvis han er bare lidt smart ...
Gravatar #15 - napsi
8. jan. 2010 19:37
Her er ser ud til at være et eksempel på det: Optimal Resilient Dynamic Dictionaries :)

En del af introduktionen:
Optimal Resilient Dynamic Dictionaries skrev:
[...] At the hardware level, memory corruptions are tackled using error detection mechanisms, such as redundancy, parity checking or Hamming codes. However, adopting such mechanisms involves non-negligible penalties with respect to performance, size, and cost, thus memories implementing them are rarely found in large scale clusters or ordinary workstations. [...]
Gravatar #16 - Harries
9. jan. 2010 07:32
Forkert måde at gøre det på..

Det er bedre at der sidder en MMU, Memory Management Unit, som chip, og holder styr på alt RAM.

Den foreslåede metode vil være årsag til større programmer, samt forskellig behandling af samme problem, afhængigt af hvor smart programmøren er.

Gravatar #17 - TrolleRolle
9. jan. 2010 08:54
Det er ærgerligt at artiklen som der linkes til er så ufatteligt ringe. I bund og grund står der kun at de to forsker i algoritmer som kan håndtere fejl.

Derefter kommer der et lamt eksempel som får de to til at se ud som om de forsøger at fortælle verden at de lige har opfundet den dybe tallerken igen.

Emnet er klart interessant, men som med meget teoretisk datalogi så er det lidt svært at finde et praktisk eksempel som er forståetligt nok til at man kan bruge i en avisartikel. Det handler jo netop ikke kun om at erstatte ECC. Det er bare ET af de steder fra hverdagen hvor de nye algoritmer kan bruges.
Gravatar #18 - kasperd
9. jan. 2010 10:41
Selvom artiklen mangler lidt detaljer er jeg ganske sikker på at det er et seriøst stykke forskningsarbejde der kommer til at foregå. Både Lars og Gerth er dygtige dataloger. De har tidligere forsket og undervist i hvordan algoritmer skal skrives for at undytter cache optimalt og undgå at blive sløvet ret meget ned af swapping.

Eksemplet med Google er da relevant nok omend meget overfladisk. Men sådan vil det jo være, når nu det er en hemmelighed hvordan Google håndterer den slags problemer. Men mon ikke der er nogen som undersøger om den løsning som forskningen finder frem til er bedre end Googles nuværende løsning.

mathiass (3) skrev:
#1: Nej, det er ikke en generel løsning på RAM-fejl. Det er algoritmer som kan lave konkrete beregninger på trods af at RAM'ene laver fejl (under en vis smertegrænse). Sådan forstår jeg det i hvert fald.
Ja, det er en korrekt forståelse. Men den slags kan jo også anvendes i de algoritmer som OS selv anvender på sine interne datastrukturer. Men det betyder ikke at OS kan bruge algoritmerne til at løse problemet for user mode.

Det kan reducere risikoen for at OS går ned. Men selvom man kan reducere risikoen for fejl på den måde forsvinder den ikke helt. Hvis f.eks. bitfejl ikke forekommer i data men i selve koden, så hjælper bedre algorimter næppe.

Det er ganske relevant for beregninger som bliver lavet i eksempelvis Cloud systemer. Når en maskine crasher, så kan man bruge resultatet alligevel i stedet for at starte forfra.
Når du laver beregninger i clustre er de typisk indelt i mindre enheder, der beregnes på forskellige computere. Hvis et af delresultaterne er forkert kan det bare regnes ud igen på en anden computer. Udfordringen er at identificere når det sker. Hvis et mellemresultat er forkert men ser rigtigt ud, så kan det være svært at finde frem til bagefter.

Systemer der virkeligt har brug for korrekkte resultater hver gang udfører hver eneste beregning på to forskellige enheder og sammenligner. (Det bliver ret kompliceret når der også skal tages højde for fejl i enheden der foretager sammenligningen).

mathiass (4) skrev:
#2: Hvis RAM i din almindelige desktop laver fejl, så kan du udskifte dem for få hundrede kroner...
Men hvad med alle de fejl den introducerer før du opdager problemet?

Harries (16) skrev:
Forkert måde at gøre det på..
Der er ikke noget der hedder rigtigt og forkert her. Der er forskellige måder at angribe problemet på. Hver løsning har fordele og ulemper. I hver enkelt situation er man nødt til at finde den bedst velegnede løsning i den konkrete situation. At have flere løsninger at vælge imellem betyder at der er bedre mulighed for at finde en velegnet.
Gravatar #19 - Tyrian
9. jan. 2010 13:14
#16
Skriv en afhandling om problemet så. Hvis du mener, ud fra de her artikler, at kunne udtale dig om alle aspekter i problematikken, så er jeg da mere end interesseret i at høre hvad du mener:)

Nu er det sådan med algoritmer af disse typer, at de sjældent er udviklet til en specifik problemstilling. Som regel er de en ny måde at løse allerede kendte problemstillinger på en alternativ måde i forhold til de eksisterende algoritmer, med forskellige fordele og - højest sandsynligt - ulemper til følge,
Gravatar #20 - -N-
9. jan. 2010 15:43
Det lyder som nogle forskere der snart bliver ansat af IBM, lyder som noget de gerne vil have patent på til z/OS. Tænk hvis nogle skulle bryde deres monopol på mainframemarkedet.
Gravatar #21 - toLucky
10. jan. 2010 01:23
Men... ekstra algoritmer = ekstra beregninger.
Er der nogen der har fanget hvad det "koster" i systemet at have disse algoritmer kørende.

Er det en tråd pr program/service som suger CPU tid konstant og/eller hvor meget?


...


Er det overhovedet relevant længere? Sidst min comp gik ned kan jeg ikke huske, og den har stået tændt og knast BOINC i 13 dage + jeg har både spillet og surfet samtidig.

Jeg ved ikke, men Win7 køre bare godt... Hvorfor skal jeg have en algoritme jeg ikke har brug for?
Gravatar #22 - kasperd
10. jan. 2010 03:17
toLucky (21) skrev:
Men... ekstra algoritmer = ekstra beregninger.
Er der nogen der har fanget hvad det "koster" i systemet at have disse algoritmer kørende.
Du skal jo ikke have mere kørende end du ellers har. Det er bare programmerne som skal bruge nogle andre algoritmer, som måske er en anelse langsommere.

Er det en tråd pr program/service som suger CPU tid konstant og/eller hvor meget?
Nej, det er det ikke.

Er det overhovedet relevant længere?
Ja. Computere kan stadig lave fejl, og jo større datamængder og beregninger der foretager, des sværere er det at finde ud af, hvad der gik galt.

Sidst min comp gik ned kan jeg ikke huske, og den har stået tændt og knast BOINC i 13 dage + jeg har både spillet og surfet samtidig.
En computer der går ned er i den her sammenhæng kun et begrænset problem. Det er et langt større problem hvis computeren kører videre, men giver forkerte resultater.

Jeg ved ikke, men Win7 køre bare godt... Hvorfor skal jeg have en algoritme jeg ikke har brug for?
Det giver bare overhovedet ingen mening. Her er tale om fejl forårsaget af hardwaren. Hvor tit fejl forekommer afhænger udelukkende af hardwaren. Det eneste som softwaren kan gøre en forskel på er hvor nemt det er at opdage og hvor store konsekvenserne er, når det sker. Måske laver din computer ikke bitfejl særligt tit. Måske er de kun opstået på steder hvor du ikke har set det.

Jeg har selv oplevet at have en computer til at stå og rekomprimere gamle backupkopier en uge i træk og efterfølgende opdage at undervejs var der opstået to bitfejl. Men hvis ikke jeg havde beregnet checksum på hver eneste af dem, så ville jeg aldrig have opdaget fejlen. Det viste sig at være et dårligt ram modul, men jeg erindrer ikke at det nogensinde fik min computer til at gå ned.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login