Annonce

Nyt fra microsoft

Indsend nyhed

Del dine opdagelser!

Afstemning

Hvornår har du sidst været til LAN?

  • 56%Det er er mere end et år siden
  • 12%Har aldrig været til et LAN
  • 10%Inden for det seneste år
  • 6%Inden for de seneste 3-4 måneder
  • 6%Inden for de seneste 2-4 uger
  • 6%Inden for den seneste uge
  • 5%Inden for de seneste 5-8 uger

WNZ: Software kan bryde Moores lov

19. mar. 2011 08:00De fleste kender Moores lov som forudsiger, at integrerede kredsløb fordobler sin ydelse hver 18. måned. Den stammer fra 1958 og bliver overholdt den dag i dag, men ifølge en undersøgelse, så er noget lignende muligt for software, bare bedre.

Undersøgelsen afslører at det i nogle tilfælde er muligt at optimere software, så det langt overgår Moores lov. I et dokumenteret tilfælde for et stykke test-software over 15 år, kunne man konstatere, at det var blevet 43 millioner gange hurtigere. de 1.000 gange stammede fra bedre hardware, resten fra optimeret software.

Det er især i algoritme-tunge programmer som for eksempel stemmegenkendelse, oversættelsessoftware, billedegenkendelse og kunstig intelligens, hvor der er meget at hente.

De store forbedringer hænger dog ofte også sammen med hardware. Her tænkes ikke i rå regnekraft, men at for eksempel processorer får optimerede instruktionssæt, som tillader mere effektiv kode.

#1: DarkwingDK

19. mar. 2011 08:37

Faktisk siger Moores lov intet om at ydelsen fordobles.
Moores lov siger at antallet af transistorer fordobles ca. hvert andet år.
Det har INTET med software at gøre. At software så kan optimeres og få forbedret ydelse, er en godt nyhed, men har intet med Moores lov at gøre.

[/flueknep off]

#2: Coney

19. mar. 2011 08:57

#1 Hurtigere end mig:P Men ja loven siger:

"The number of transistors that can be placed inexpensively on an integrated circuit doubles approximately every two years"

Det er rimeligt nemt at se at software intet kan gøre ved det.

#3: MOA

19. mar. 2011 09:22

#1 + #2 Men det er da meget sjovt at sammenligne, jeg har lige været ude og måle min altan med en vægt, den var 5.3 kg lang og 2.4 kg bred.

Det bliver dog lidt svært senere når konen skal bage, har lagt min tommelstok hvor vægten plejer at stå...

www.INTERNETpriser.dk - find og sammenlign alle internetforbindelser på Danmarks bedste internetprisguide

#4: Viol8r_dk

19. mar. 2011 09:33

#1+#2: Tilgengæld så kan det påvirke Kurzweils Law of Accerelerating Returns i positiv retning...

#5: HenrikAppel

19. mar. 2011 09:55

1# 2# og 4#
1 og 2 har ret kan ikke se hvorfor der skrives at softwaren ændre på transistore..
4 Du er inde på det rigtige.

#6: skeptiker

19. mar. 2011 10:01

#5 haha Det er flot du ka finde ud af at gi de andre ret :D

#7: PorreKaj

19. mar. 2011 10:12

#6 haha det er flot du ka finde ud af at sige det er flot at han ka
finde ud af at gi de andre ret :D

#8: Lobais

19. mar. 2011 10:12

43.000 gange i software lyder som en algoritmeforbedring.

Programmers are similar to the monks of Europe’s Dark Ages; they are the only ones with the insight to read and interpret the scripture of...

#9: fe950

19. mar. 2011 11:58

Man kan sammenligne med at en kvindes krop(antal transistorer) OG evner(algoritmer) kan optimere sex-oplevelsen :)

Ja ja.. jeg ved godt at jeg er afstumpet i min tankegang.

#10: PorreKaj

19. mar. 2011 12:07

dunno, prøv med biler

#11: DarkwingDK

19. mar. 2011 12:19

dunno, prøv med bilerPorreKaj (#10)

Hvis man fordobler antallet af hjul... Nej..

Hvis man fordobler antallet af sæder... Nej det ville forringe kraftigt når man skal høre på dobbelt så mange "Du skulle have drejet til venstre.." eller "Du kører for stærkt" eller "Er vi der snart".

Hvis man fordobler antallet af hestekræfter hvert andet år, så forbedres chaufførens køreevner?

Ok. Jeg giver op. Jeg du'r ikke til bil sammenligningerne :p

#12: MadiZone

19. mar. 2011 12:43

Kunne man eventuelt sammenligne med Nazityskland?

if (woodchuckCanChuckWood && woodchuckWouldChuckWood) { System.out.println("42"); }

#13: cgt

19. mar. 2011 12:56

#12: Der er ikke noget der hedder "nazisme". Den korrekte betegnelse er "nationalsocialisme". Derfor hed det ikke "Nazityskland".

#14: PorreKaj

19. mar. 2011 13:02

Nationalsocialistiske Tyskland

#15: F1skr

19. mar. 2011 13:07

#12: Der er ikke noget der hedder "nazisme". Den korrekte betegnelse er "nationalsocialisme". Derfor hed det ikke "Nazityskland".cgt (#13)

Du ved tydeligvis hvad #12 snakker om. Hvor siger han at det hed nazityskland?

"CHKDSK x: /f /r" saved my life.

#16: onetreehell

19. mar. 2011 13:11

Hvis man får hjulene til at dreje hurtigere på en bil... så drejer hjulene hurtigere!

"Dansk Folkeparti er for racister og udviklingshæmmede. Det må I gerne quote mig for" -- Ronson (newz.dk bruger)

#17: chris

19. mar. 2011 14:06

hvis software bryder loven...
hvem skal så i retten?

www.noobish.dk min clog

#18: graynote

19. mar. 2011 14:35

hvis software bryder loven...
hvem skal så i retten?chris (#17)

Forhåbentlig Sidney Lee. Han er så nederen.

#19: tentakkelmonster

19. mar. 2011 14:41

Gid al software blev hurtigere med tiden. Desværre har ting det med at blive større og mere komplekse, og derfor også tungere at danse med. Nogen gang i så slem grad, at det helt kompenserer for at hardwaren er blevet hurtigere.

#20: kasperd

19. mar. 2011 14:59

Artiklen var på slashdot allerede sidste år. Og på det tidspunkt kommenterede jeg, at forbedringer i algoritmer kun gælder for det specifikke problem algoritmen håndterer.

http://slashdot.org/comments.pl?sid=1924194&cid=34663122

Hvis algoritmen kan gøres så meget hurtigere har den muligvis ikke været særligt god fra start af.

Som det også bemærkes længere nede i tråden, så afhænger det af omstændighederne, hvilken algoritme der er hurtigst.

Det kan være at en algoritme der er hurtig hvis man har meget RAM vil swappe for meget, hvis man har mindre RAM. Og på en computer med begrænset RAM er en anden algoritme bedre.

F.eks. Algoritme 1 tager 1 minut på en maskine med 64MB RAM og 10 sekunder på en maskine med 1GB RAM.

Algoritme 2 udnytter den ekstra RAM og tager kun 1 sekund på maskinen med 1GB RAM. Men hvis algoritme 2 bliver kørt på maskinen med kun 64MB RAM swapper den så meget, at det kommer til at tage 2 måneder.

Måske findes der en algoritme 3, som optimerer efter mængden af RAM og tager 2 minutter på maskinen med 64MB RAM og 2 sekunder på maskinen med 1GB RAM.

Tallene er selvfølgelig nogen jeg bare har fundet på, men de er ikke urealistiske. Hvilken af de tre algoritmer du bør vælge afhænger af om du ved hvilken computer den skal køre på.

Alle tre algoritmer i dette eksempel ville være hurtigere på den nye computer end på den gamle. Men hvor stor forskellen er afhænger af, hvad algoritmen er optimeret efter.

Den mest fair sammenligning af de to computere ville være med den algoritme, der er optimeret efter at fungere nogenlunde godt uafhængigt af computerens størrelse.

Det gør naturligvis også en forskel hvad data algoritmen skal arbejde på. Med nye og større computere vil man jo kunne arbejder på langt større datamængder, og det gør også en forskel på hvilken algoritme der er god.

<p>Ein Plakat der APG passt immer</p>

#21: Tyrian

19. mar. 2011 15:30

#20

Du snakker her nok mest af implementering af algoritmer, som ganske rigtigt kan have stor indflydelse på, hvordan en algoritme yder.

Men jeg synes ikke man kan tillægge forbedret hardware og bedre instruktionssæt en reel forbedring af en algoritme.

Hvis du fra at skulle afsøge 43 000 000 states, kan komme ned og undersøge 1000, før du har løst et problem, har du forbedret algortimen 43 000 gange. At de så har fået en algoritme til at performe 43 000 gange bedre, betyder ikke nødvendigvis at algoritmen er blevet forbedret lige så meget. Derfor synes jeg at nyheden er en anelse diffus.

#22: fudtmele

19. mar. 2011 23:08

Tjah - altså set herfra ser det da ud til at software osse følger Moore's lov; antallet af bit (~= transistorer) som et program der udfører [indsæt funktion her] fylder, ser da også ud til at fordobles med et omtrent fast interval - om det lige er to år har jeg ikke helt styr på - men jeg har en lumsk anelse om, at det er menneskeskabt og ikke en naturlov :)

- og det har *heller* ikke noget med ydelse at gøre...

#23: Coney

20. mar. 2011 00:45

Tjah - altså set herfra ser det da ud til at software osse følger Moore's lov; antallet af bit (~= transistorer) som et program der udfører [indsæt funktion her] fylder, ser da også ud til at fordobles med et omtrent fast interval - om det lige er to år har jeg ikke helt styr på - men jeg har en lumsk anelse om, at det er menneskeskabt og ikke en naturlov :)

- og det har *heller* ikke noget med ydelse at gøre...fudtmele (#22)

Hvis du nu tænker dig rigtig godt om så kan du sikkert godt finde en logisk forklaring på at den gennemsnitlige softwares hardwarekrav stiger i takt med den gennemsnitlige hardwares egenskaber:)?

#24: astemix

20. mar. 2011 06:14

Er software blevet bedre hmmm til at diskutere
software er blevet bedre til at kunne være med til hardware kontrolleret ting
som GPU og lign men det er vist meget af det
en blackfin eller mange af de andre sharc processorer er enormt god til matematik
modsætning er en CPU dårlig og skal bruge flere gange igennem procserroren før det er færdig udregnet

hvis du skulle sætte nogle af de beregning vi sender igennem GPUen nu om dage igennem en almindelig processor ville den være sløv
den er bare ikke lige så god til matematiske ting som fra tid til anden bliver brugt i grafik

understøtter softwaren så dette vil selvfølgelig gøre nogle interasante ting
men hvis den ikke gør vil det sløve hele systemmet
Det det så kan gøre er at du ender med at skulle bruge mindre mængde af transistere for at kunne gøre noget som en anden processor ikke er specialiceret i kan

#8
behøver ikke at være en algoritme forbedring
hvis jeg tager samme algoritme og smider i en CPU,en GPU en SHARC eller bare en FPGA vil jeg får meget forskellige hastighedder da de arbejder forskelligt det vil også give forskellig mængde af transistere der er nødvendigt for at kunne løse problemmet
dog FPGA er at du smidder din software mere eller mindre ned i hardwaren hvor den ofte kan arbejde ekstremt hurtigt

#25: mathiass

20. mar. 2011 10:16

Sikke noget vrøvl. Hvis man bruger en anden algoritme, så er det jo reelt et andet stykke software man kører, også selvom resultatet er det samme. At ét stykke software generelt kan give et resultat hurtigere end et andet kommer nok ikke bag på nogen.

#26: ChristofferKjeldgaard

20. mar. 2011 10:21

#25 Med den logik er et patched program lige pludselig et helt andet program med det samme formål - Det er stadig det samme produkt selvom der er ændret kode og det giver god mening at tale om ydelsesforbedring her.

#27: Tyrian

20. mar. 2011 12:03

#26
Bare ikke i forhold til Moores lov. Man kan godt få en eller anden brilliant idé til pludseligt at forbedre en algoritme endog mange tusinde gange. Men man kan ikke snakke om samme systematiske udvikling inden for algoritmer, som man kan med transistorer.
Desuden er algoritmer mere eller mindre altid kraftigt afgrænset i forhold til det miljø de opererer indenfor, hvorfor de ikke kan anvendes til generelle problemer (mange af de problemer man benytter algoritmer til at løse er NP-Hard eller endog PSPACE, hvorfor der slet ikke findes generelle løsninger, som kan realiseres - endnu.). Derfor giver det ikke rigtigt mening at drage algoritmer ind i en diskussion om Moores lov.

#28: astemix

20. mar. 2011 19:22

#25 #26
der er selfølgeligt noget at hente hvis algoritmen ikke er bygget ordentligt
eller den er bygget med matematiske funktioner der ikke ligger direkte som normalt i processoren
men hvis en algoritme er så god som den kan blive
kan det give forskellige resultater i forhold til hvilken rype processor du bruger

Eksempel
nogle af de gamle spil som kørte 3D og brugte primært processor til udregning kørte utroligt dårligt i forhold til spil der har samme kvalitets spil der brugte GPU
selfølgelig er softwaren tilpasset GPU eller CPU "algoritmer og lign"
så software er mere end algoritmer det er også den måde den komminikere med hardwaren og den type hardware den kan benytte
men GPU er bare bedre til den form for udregning som eksemple 3D udregninger

#29: mathiass

20. mar. 2011 22:57

Med den logik er et patched program lige pludselig et helt andet program med det samme formålChristofferKjeldgaard (#26)

Ja, det mener jeg også er fuldstændig korrekt. For mig handler software-forbedring i den forbindelse om at lave en bedre optimerende compiler som gør den samme kode hurtigere at afvikle. Det er den eneste meningsfulde måde at tale om generel ydelsesforbedring (og dermed en vag forbindelse til moores lov) for software.

#30: mathiass

20. mar. 2011 22:59

der er selfølgeligt noget at hente hvis algoritmen ikke er bygget ordentligt
eller den er bygget med matematiske funktioner der ikke ligger direkte som normalt i processoren
men hvis en algoritme er så god som den kan blive
kan det give forskellige resultater i forhold til hvilken rype processor du brugerastemix (#28)

Det her giver ganske enkelt ikke mening? Matematisk funktioner ligger ikke i processoren. Der er dog visse matematisk operationer som gør. Uanset processoren så bør algoritmens resultat være uafhængig af processoren hvis implementationssproget har en nogenlunde ædruelig semantik.

Anden del af dit indlæg handler jo netop om forbedringer i hardware...(?)

#31: Ildhesten

20. mar. 2011 23:09

Ja, det mener jeg også er fuldstændig korrekt. For mig handler software-forbedring i den forbindelse om at lave en bedre optimerende compiler som gør den samme kode hurtigere at afvikle. Det er den eneste meningsfulde måde at tale om generel ydelsesforbedring (og dermed en vag forbindelse til moores lov) for software.mathiass (#29)

Hvad man kan synes er interessant i denne sammenhæng er at Proebstings law siger at bidraget fra optimerende compilere giver ca. en faktor 2 hvert 18 år.

#32: arntc

21. mar. 2011 19:14

Er Windcape afgået ved døden, eller har han bare programmeret Hello World! i Java? Han plejer da ellers at være både hurtig og flink til at give .NET æren for alt godt i verden.

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