Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (43)
Emner Udviklingsværktøjer

email fra Sct. Peter

Af Poul-Henning Kamp 26. august 2010 kl. 12:10

Min artikel i Communications of the ACM om min B-heap sparker stadig emails af sig og der er en tendens til at jo ældre korrespondenten er, desto senere kommer emailen.

På nuværende tidspunkt kan korrespondancen opdeles i nogle helt klare klasser:

CS undervisere der siger "Virtual Memory er ikke relevant, de studerende skal lære at analysere en algoritme under de givne forudsætninger".

CS studenter der spørger "Hvor kan jeg lære mere ?"

CS forskere der henviser til et obscurt paper de eller andre har skrevet om cache-oblivious algoritmer.

Og endelig folk af forskellig art der takker mig for at påpege problemet.

I den sidste kategori ankom en email igår aftes hvor indledningen lyder: Citat:

I was interested in your CACM article about "You're doing it wrong". You have artfully documented the flaws in one of the virtual memory myths – that the flat address space is equivalent to a flat physical memory.

Jeg var på vej til at lave "I'm not worthy! I'm not worthy!" da jeg så at afsenderen var Peter Denning.

'nuff said.

phk

Send Tweet
Udskriv
Billede af Poul-Henning KampOm Poul-Henning Kamp

Selvstændig systemprogrammør, kernekoder, Varnish-forfatter, data-arkæolog og brokkehoved uden særlig portefølje.

Follow @bsdphk

Kommentarer (43)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Carsten Sonne 26. aug. 2010 - 13.11
 
Jeg gratulerer

Jeg forstod ikke helt den sidste del af bloggen. Hvis jeg ellers har forstået det rigtig, kan jeg kun sige:

Du er da for sej! Fantastisk at du kan holde fast i din egen overbevisning, trods alle fortæller, at du er helt på afveje. Jeg gratulerer og håber det kan være til inspiration for andre med store tanker.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Daniel Madsen 26. aug. 2010 - 13.33
 
Gratulerer også

Det er da lidt sejt :-)

Jeg fandt også din artikel meget interessant og pointen er lige i skabet. En ting er matematisk teori, noget andet er praktisk afvikling på et konkret OS og noget konkret hardware med de faktorer det afstedkommer.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Louis Andersen 26. aug. 2010 - 14.22
 
Re: Gratulerer også

Det er super sejt.

PHK har en pointe: Når man laver en eller anden matematisk model, så skal man også kende grænserne for modellen. Og der skal undervises i grænserne.

Grunden til at vi, som regel, kan komme af sted med modellerne er fordi de er nogle forfærdeligt gode indikatorer for køretiden i praksis. Med andre ord giver de et hurtigt overslag over hvor hurtigt en given algoritme kører. Men modellen har en grænse - og når den overskrides, så falder modellen sammen i praksis. For store-o-notation er problemet som regel det at den konstante faktor bliver så stor at "langsommere" algoritmer viser sig at være hurtigere i praksis. Og skæringspunktet i inputstørrelsen, N, bliver så stor at det ikke er relevant for praktiske problemer. "Algoritme A er hurtigere end Algoritme B hvis inputtet er større end antallet af IPv6 adresser".

Et rigtigt godt heap-eksempel på dette er Fibonacci-hoben. Amortiseret er denne hobtype totalt overlegen på alle punkter. Men i praksis er det næppe den hurtigste type heap vi har. Den har muligvis en chance i forbindelse med MERGE-operationer, men jeg tvivler på at den kan slå en binomialhob. Køretiderne på Fib-hoben ser meget imponerende ud. Og skindet bedrager.

Jeg mener ikke umiddelbart at PHKs observation giver grund til helt at forkaste køretidsanalyser. For langt størstedelen af diverse algoritmer er det en ufatteligt effektiv metode til at "skille fårene fra bukkene" og få et hurtigt overblik. Man skal bare være opmærksom på at man kan blive snydt. Grusomt snydt.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Martin Bøgelund 26. aug. 2010 - 14.57
 
Re: Gratulerer også

Også et stort tillykke til PHK herfra!

Jeg mener ikke umiddelbart at PHKs observation giver grund til helt at forkaste køretidsanalyser.

Det tror jeg heller ikke ville være den korrekte konklusion.

Så vidt jeg forstår har Poul-Henning påpeget en uhensigtsmæssig [i]antagelse[/i] i de hidtidige køretidsanalyser - nemlig antagelsen om at VM-kald havde en "flad" struktur.

Korrigerer man denne antagelse til at stemme overens med de faktiske forhold - inklusive VMs "ikke-flade" struktur - bør man vha de klassiske værktøjer til køretidsanalyse kunne bevise overlegen efficiens i PHK's tilgang.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Sonne 26. aug. 2010 - 15.11
 
Re: Gratulerer også

En model er ikke virkelighed. Som navnet antyder er en model, blot en model over virkeligheden. Eller rettere: En model er en forsimpling af virkeligheden.

Jeg skal ikke gøre mig klog på modeller for kørselstid og Poul-Hennings nye opdagelse. Der er dog nogle fundamentale sammenhænge mellem modeller og virkeligheden.

På samme måde som Newtows love jo ikke er forkert, er modeller for kørselstid formegentelig heller ikke forkerte. Sagen er nærmere, at modellen aldrig er meget præcis end indflydelsen fra de bortabstraherede faktorer, er ligegyldige.

Hvad Newton ikke vidste, var at et legemes hastighed påvirker det masse. Det opdagede Einstein derimod. Herved kunne der pudsig sættes ord på en af de faktorer som Newtons model abstraherede bort fra. Samtidig kunne man nu forklare observationer som ellers var uforklarlige i det situationer hvor det bortabstraherede ikke længere var ligegyldigt, planeternes bevægelse etc.

En Model vil altid være en forsimpling af virkeligheden. Hvis ikke den var det, ville den ikke længere være en model, men være virkelighed. Beregninger ville kræve input på universets nederste niveau og skulle indkludere samtlige fysiske love, både de kendte og de ukendte.

Selv i fremtiden med næsten uanede muligheder i regnekraft, målepræcision og viden om naturen, vil kun et afgrænset enhed, i fysikken en rum, kunne modeleres i det påvirkninger uden for enheden nødvendigvis må bortabstraheres.

Bottom Line er: En model er aldrig mere præcis en de forudsætning den bygger på.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Johan Brinch 26. aug. 2010 - 15.44
 
Re: Gratulerer også

Selvfølgelig skal man da ikke forkaste køretidsanalysen og nogle gange ER N mega stort ;) Det er jo ikke for sjov, når gmplib implementere FFT til multiplikation med store tal (http://gmplib.org/manual/FFT-Multiplication.html#FFT-Multiplication).

Jeg sidder f.eks. med en køretid på O(NM), hvor N=2^20 og M=10^5 i mit værste tilfælde. Alt for langsomt. Det har jeg ved lidt tricks fået skrevet om til O(Nsqrt(M)), hvilket jo teoretisk set er meget hurtigere. Men fordi det er 2sqrt(M) og fordi det tilføjer overhead, siger min intuition mig, at det kun er omkring dobbelt så hurtigt, og det er ikke nok. Jeg skal nok nærmere bruge 100 gange så hurtigt. Køretid er ikke nok, men det er konstanttids optimeringer heller ikke.

Ps. Der er pænt mange IPv6 addresser ;)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 26. aug. 2010 - 18.08
 
Re: Jeg gratulerer

@Carsten: Klik på Peter Dennings navn i blogindlægget og læs hvad der står om ham.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Sonne 26. aug. 2010 - 19.09
 
Re: Jeg gratulerer

@PHK - Jeg har set Wayne's World. Jeg har også læst om Peter Denning. Jeg må tilstå jeg ikke kendte ham i forvejen. Jeg blev blot i tvivl om det virkelig kunne passe eller om der var en der lavede sjov med dig. Men den er altså god nok :-)

Mon ikke det lige så meget er overstående opdagelse som MD5, du nu vil blive kendt for ude i den store verden? Jeg syntes stadigvæk det er for vildt trods din egen ydmyge tilgang. Men, vi er jo danskere underlagt Janteloven ;-)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Vijay Prasad 26. aug. 2010 - 21.30
 
Re.
CS forskere der henviser til et obscurt paper de eller andre har skrevet om cache-oblivious algoritmer.

PHK der henviser til et obskurt paper han har skrevet om brug af VM.

;-)

(Personligt gør PHK's "populær-skrivestil", at jeg ikke rigtigt har lyst til at diskutere - altså stilen fjerner fokus fra indhold, det er synd)

Mvh,

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Hans-Kristian Bjerregaard 27. aug. 2010 - 01.05
 
Hvor mange har sovet i skolen?

Jeg kan ikke helt se hvordan nogle kan tro at store O notation kan benyttes til at beskrive en algoritmes ydeevne. Store O kan jo kun give et [b]groft estimat[/b] af hvorledes en algoritme skalerer i forhold til størrelsen af dens indput.

Dette har jo intet med den faktiske ydeevne at gøre!

Problemet i denne sag er at lidt for mange har glemt hvad de enligt lærte tilbage på skolebænken (hvis de overhoved har været der). Jeg tror lidt litteratursøgning ville have været sundt for alle.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Favrholdt 27. aug. 2010 - 10.13
 
Link til PHKs artikel i ACM

http://queue.acm.org/detail.cfm?id=1814327

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Martin Bøgelund 27. aug. 2010 - 10.38
 
Re: Hvor mange har sovet i skolen?

Hans-Kristian Bjerregaard:

Jeg kan ikke helt se hvordan nogle kan tro at store O notation kan benyttes til at beskrive en algoritmes ydeevne. Store O kan jo kun give et groft estimat af hvorledes en algoritme skalerer i forhold til størrelsen af dens indput.

Værktøjerne til analyse af køretidskompleksiteter (store-O, store-Theta, store-Omega, ...) kan bruges til matematisk at bevise egenskaber ved de analyserede algoritmer.

Matematik er et universelt sprog - det afhænger ikke af om PHK sidder med FreeBSD på en ARM-processor med SSD-diske, mens du sidder med Windows 7 på en x86 og en båndstation. Derfor gør en matematisk analyse det lettere at kommunikere påvisninger af en algoritmes overlegenhed ift andre, uden at man skal spilde tid på indvendinger om at "jamen jeg bruger system XYZ..."

Vi behøver med andre ord ikke at købe det samme system som PHK, jagte de uvedkommende processer på maskinen og stoppe dem, opstille statistiske tests og køre dem det nødvendige antal gange, for at kommunikere at den ene algoritme outperformer den anden under de givne omstændigheder. Vi kan afdække grundlæggende egenskaber ved algoritmer, uden brug af hardware.

Matematisk analyse af køretidskompleksiteter vha store-O & friends, bekæftiger sig alene med algoritmers efficiens på et matematisk plan, og kan derfor bruges til f.eks. på forhånd at udvælge de algoritmer der ser ud til at klare opgaven bedst, [i]inden[/i] man begynder implementeringen.

Dette har jo intet med den faktiske ydeevne at gøre!

Jo. Men det er ikke [i]altafgørende[/i] for den faktiske ydeevne - der er også andre faktorer der spiller ind på den - din båndstation fra før f.eks.

Humlen er jo at du kobler algoritmers matematiske natur, med matematikkens værktøjer indenfor bevisførelse, og derved kan levere uomtvistelige fakta omkring algoritmer. I matematik kan man nemlig ikke bevise noget der er matematisk forkert - man kan kun lave et et matematisk bevis forkert.

Og som al anden matematik, kræver det korrekt anvendelse af værktøjerne, før man kan bruge resultaterne til noget.

Hvis man derimod ikke formår at anvende kompleksitetsanalyseværktøjerne korrekt, vil man sagtens kunne havne i en situation hvor man konkluderer, at resultaterne ikke er anvendelige, eller i modstrid med observerbare forhold.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 27. aug. 2010 - 11.01
 
Re: Hvor mange har sovet i skolen?

Martin,

Du har fuldkommen ret.

Bortset fra den lille detalje, at de antagelser og forudsætninger man, stadig, bruger i Datalogien, er uden relevans for computere der er bygget de sidste 20-30 år.

Jeg har ikke på noget tidspunkt slået tromme for at vi ikke skulle analysere algoritmer, men alene for at vi skal gøre det under forudsætning af at de afvikles på noget der ligner en rigtig computer.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Martin Bøgelund 27. aug. 2010 - 11.18
 
Re: Hvor mange har sovet i skolen?
Jeg har ikke på noget tidspunkt slået tromme for at vi ikke skulle analysere algoritmer, men alene for at vi skal gøre det under forudsætning af at de afvikles på noget der ligner en rigtig computer.

Mit indlæg var bestemt heller ikke en reaktion på noget du havde sagt.

Der var bare optræk til at andre ville spænde dig og dit fine arbejde for en vogn, der sagde noget i retning af at "nu er det bevist at store-O ikke virker".

Og det syntes jeg ville være en helt forkert drejning.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 27. aug. 2010 - 11.52
 
PHK

Det er muligt at der ikke undervises så meget som der burde i algoritmers ydeevne når de køres under virtuel hukommelse. Men jeg synes kritikken i din artikel er uberettiget, idet du ikke blot kritiserer undervisningen, men hele CS feltets tilgang til algoritmer!

Sagen er at der er mange i CS der har haft samme overvejelser som dig og lavet algoritmer i stil med det du har lavet. I din artikel citerer du kun artikler fra '60erne og ikke de mange artikler siden der har beskæftiget sig med problemstillingen. Som der også var en der bemærkede, hvis du gik 5 år mere tilbage kunne du også begynde at tage æren for Quicksort :) Jeg er jævnligt stødt på algoritmer der forholder sig til problemstillingen, f.eks. da jeg kiggede på suffix arrays, hvor en stor fordel i.f.t. suffix trees netop ligger i lokalitetseffekter.

Endeligt skal man huske at det jo kun er i visse situationer (store datasæt) og med visse algoritmer disse effekter for alvor kommer til udtryk, så det er måske lidt bredt at skyde mod al analyse af algoritmer :-)

Desuden undrer det mig at problemet ikke bare kunne løses ved at holde selve B-heap/tree datastrukturen i memory og kun lade selve "sidedata" blive swappet ud. Jeg kan ikke tro index data fylder ret mange % af maskinens samlede hukommelse, men måske tager jeg fejl?

Iøvrigt er gengivelsen af kritikken af din artikel - som du fremstiller den i dette blotindlæg - ikke retfærdig. De fleste kommentarer jeg har set går ikke på at du har en relevant pointe, men mere at den er fuldstændigt velkendt - både problemstillingen og løsningen :)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 27. aug. 2010 - 12.20
 
Re: PHK
Sagen er at der er mange i CS der har haft samme overvejelser som dig og lavet algoritmer i stil med det du har lavet.

... og så håber de at deres obscure papers på magisk vis diffunderer ud i det omkringliggende samfund.

Min kritik går på undervisningen og formidlingen, ikke på forskningen.

Vis mig den lærebog der hjælper praktikere til at vælge algoritmer på virkelighedens computere og jeg skal gerne promovere den her på min blog.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 27. aug. 2010 - 12.54
 
Re: PHK
Min kritik går på undervisningen og formidlingen, ikke på forskningen.

OK, hvad så med:

The past 30 or 40 years of hardware and operating-systems development seems to have only marginally impinged on the agenda in CS departments' algorithmic analysis sections, and as far as my anecdotal evidence, it has totally failed to register in the education they provide.
  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 27. aug. 2010 - 13.39
 
Re: PHK

Ja, det er præcis hvad jeg skrev.

Hvilken del af det er det du ikke forstår ?

Mener du det er nok at vifte med nogle få obskure papers om "Cache-Oblivious Algorithms" der alle er publiceret i tidsskrifter som dårligt nok eksisterer og så sige man har gjort sin del ?

Prøv eventuelt at spørge Google Trends om hvordan det går med "cache oblivious algorithms": http://www.google.com/trends?q=cache+oblivious+algorithms

Sammenlig så med hvad de har på "binary heap": http://www.google.com/trends?q=binary+heap

Flot, ikke ?

Og hvis disse Cache-Oblivious Algorithems virkelig er så fantastiske, hvorfor bliver de så ikke brugt over det hele allerede ?

De burde jo spredes som løbeild, burde de ikke ?

Kunne det være fordi de også er bygget på en abstrakt model af den virtuelle computer programmet afvikles på, som stadig ikke har ret meget med virkeligheden at gøre ?

Jeg er glad for at der, trods alt, forskes i emnet, men jeg er ikke imponeret over forskningen og formidlingen kan jeg slet ikke få øje på.

Lige her og nu, er der sandsynligvis flere programmører der har hørt om C.O.A igennem debatten om min artikkel, end via nogen anden kanal.

Er det ikke lidt pinligt ?

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Hans-Kristian Bjerregaard 27. aug. 2010 - 14.56
 
Re: Hvor mange har sovet i skolen?

MARTIN BØGELUND:
Præcis hvad jeg beklager at de fleste har glemt.

Min pointe er mere at store O kun kan bruges til en meget naiv sammenlgning af algoritmer og hvis man alene benytter den til at træffe beslutninger i praksis går det selvfølgeligt galt. Man kunne jo f.eks. komme til at fravælge quicksort som et eksempel.

MORTEN ANDERSEN:
Helt enig i din kritik.

POUL-HENNING KAMP:
Problemet er din generelt manglende forståelse for at dit arbejdsområde kun beskæftiger en meget lille delmængde af programmørere i verden. De fleste andre har jo tiltro til at operativsystem samt grundliggende biblioteker og deres datastrukturer udnytter maskinen effektivt.

Den abstraktion er nødvendig for overhoved at få udviklet de programmer som datamaterne bruges til. Uden dem er datamaten blot et sjovt stykke legetøj.

Algoritmer er jo generelle og uafhængie af hvorledes de bliver afviklet (de kunne jo også afvikles af mennesker) men det er deres implementation ikke. Det er bare ikke implementeringen der er relevant på et generelt niveau.

Men når du påstår at der ikke bliver undervist i deres afvikling på maskinen er det jo noget vås da Jyrki allerede på mandag om en uge afholder et 2 måneders kursus kun om datatyper hvor fokus lige præcis er hvorledes de fungerer på en moderne datamat: http://sis.ku.dk/kurser/viskursus.aspx?knr=120861

Ærgrer mig at du altid mister alle former for omtanke og selvkritik når du får chancen for at slå på datalogien, blot fordi du ikke forstår den verden.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Anders Hessellund Jensen 27. aug. 2010 - 15.28
 
Re: PHK

PHK,

Den algoritme du har lavet er ikke en cache-oblivious algoritme. Det er en IO-effektiv algoritme.

Cache-oblivious algoritmer er nogle (som regel ret komplicerede) algoritmer, som under nogle rimeligt realistiske antagelser kan optimere antallet af cache-misses i HELE hukommelseshierarkiet uden at page-size og cache-size for de forskellige caches er kendt. Under disse betingelser er selv noget forholdsvist banalt som sortering en ret kompliceret sag. Fælles for alle disse algoritmer er, at der er et relativt højt konstant overhead, og at det konstante overhead som regel er så stort, at algoritmerne ikke har nogen praktisk interesse. Det kan selvfølgelig ændre sig hvis hukommelseshierarkiet får endnu større betydning for performance.

IO-effektive algoritmer optimerer antallet af page faults på ét hukommelsesniveau, og antager, at programmet kender pagesize. IO-effektive algoritmer har stor praktisk interesse. Check eksempelvis STXXL: http://stxxl.sourceforge.net/ .

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 27. aug. 2010 - 20.35
 
Re: PHK
Cache-oblivious algoritmer er nogle (som regel ret komplicerede) algoritmer, som under nogle rimeligt realistiske antagelser kan optimere antallet af cache-misses i HELE hukommelseshierarkiet uden at page-size og cache-size for de forskellige caches er kendt.

Jep, det er også mit indtryk.

Her kunne man så anføre:

The getpagesize() function appeared in 4.2BSD.

Det er fint at i forsvarer jeres universiteter/uddannelser/papers, men faktum er at der stort ikke er nogen der har lært på deres uddannelse hvordan man får noget der ligner 30% af teoretisk ydelse ud af VM hardware...

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Louis Andersen 27. aug. 2010 - 22.29
 
Re: PHK
Det er fint at i forsvarer jeres universiteter/uddannelser/papers, men faktum er at der stort ikke er nogen der har lært på deres uddannelse hvordan man får noget der ligner 30% af teoretisk ydelse ud af VM hardware...

Det forstår jeg ikke. Den teoretiske ydelse er netop ikke afhængig af praktiske gøremål. Du kan passende antage at samtlige VM-pagereferencer giver paging fra en båndstation. Resultatet er at den praktiske algoritme kører langt hurtigere end forventet da visse pages ender med at have en meget bedre access-tid.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 28. aug. 2010 - 00.29
 
Re: PHK
Det forstår jeg ikke.

Roger that.

Men Peter Denning forstod det, og det tæller meget for mig.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Olesen 28. aug. 2010 - 16.03
 
Det er sgu da alt for sejt.

Det er fedt når folk der er store inden for deres felt ikke er for fine til at blive klogere og give positiv respons til andre der gør et godt stykke arbejde.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 28. aug. 2010 - 16.04
 
Re: PHK

Jo, det var præcis hvad du skrev. Citatet illustrerer at du i din artikel ikke blot kritiserer undervisningen, men også forskningen, i modstrid med hvad du netop hævdede.

Du har tydeligvis slet ikke forstået hvad COA er. Som andre skrev, er COA nogle meget specielle algoritmer, der ikke har vundet stor udbredelse. Din algoritme er ikke en COA, men en optimering af layout af datastrukturer for at forbedre locality i tilgangen, hvilket har stor udbredelse.

Jeg har læst mange papers der har anvendt lignende tricks (d.v.s. ikke COA) indenfor alle mulige datastrukturer. Der findes dog utvivlsomt algoritmer der ikke er optimeret i denne henseende, men det er jo heller ikke altid det er nødvendigt.

Ang. undervisningen så er der jo givetvis mange problemstillinger man kan rende ind i der ikke undervises i. Jeg mener ikke man kan forlange at alle scenarier er dækket, og det er heller ikke realistisk eller nødvendigt. For at tage dit eksempel. Antag at en nyudklækket studerende skulle skrive Varnish. Han starter med at bruge et standard B-tree. Da han så går i gangt med at teste på større/realistiske datamængder, opdager han at alt kører ad h til. Mon ikke han hurtigt opdager at disken seeker helt vildt ved simple operationer? Og enten selv lægger to og to sammen eller spørger andre hvad der kan være galt? Måske søger i litteraturen? Selve det underliggende fænomen - trashing - og mekanismen bag, er jo helt velkendt.

Du slår meget på at Varnish er et "moderne program" fordi det udnytter det store, flade adresserum og overlade prioritering af sider m.m. til operativsystemet. Er dette så unikt? Der kan da være modeksempler, men jeg tror da de fleste (non-legacy) programmer har arbejdet sådan efter 32-bit kom til.

Hvorfor var det egentlig du ikke bare hintede til operativsystemet at træstrukturen skulle holdes i hukommelsen (jeg går ud fra FreeBSD har et kald hertil - ellers er der andre måder), så det kun var satellit data der blev swappet ud. Der er også ulemper herved men under nogle loads vil det giver bedre performance end "B*tree" løsningen.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 28. aug. 2010 - 17.44
 
Re: PHK

Morten,

Tak fordi du på ypperste vis dokumenterer min påstand.

Stort set alt hvad du skriver er den slags datalogvrøvl jeg kritiserer:

  1. Jeg kritiserer ikke forskningen, jeg ønsker blot at der kom noget mere relevant ud af den.

  2. Jo, jeg har tydeligvis forstået hvad COA er: Stort set uanvendeligt i praksis. Se 1.

  3. Men når det er nødvendigt at optimere, ville så ikke forvente at datalogien kunne hjælpe ?

  4. En af de problemstillinger jeg tror de flest forventer dækket er: "programmet afvikles på en nutidig computer". Hvilken literatur søger han i ? Ingen af hans lærebøger "spilder" tid på emnet.

  5. Vis mig eksemplerne, jeg har ikke kunnet finde dem.

  6. Uhm, du har ikke læst artiklen, vel ? Dette træ er "satellit data" der netop ikke skal bidrage mere til "working set" end højest nødvendigt.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 28. aug. 2010 - 19.20
 
Re: PHK

Jeg har svært ved at forholde mig til dine punkter, når det ikke fremgår hvad de er svar på.

2) Vi er enige om at COA er uanvendeligt - og at det du ikke har lavet er CAO? Godt så.

3) Det kan den også! Har du hørt om Citeseer?

4) Ditto

5) Eksempler på?

6) Jo jeg har læst artiklen. Forstår ikke hvad du mener med "Dette træ er "satellit data", med mindre du har "træer i træer" eller lignende. Men da hele emnet jo handler om en praktisk problemstilling, kan du så give nogle mere konkrete tal? Hvor mange entries er der i dette træ i en praktisk load? Hvad fylder hvert entry (i.e. ikke bare pointerne osv. men det som entry'et står for: satellit data)? Hvor meget RAM er der (ca./typisk) i maskinen?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 28. aug. 2010 - 19.36
 
Re: PHK
Jeg har svært ved at forholde mig til dine punkter, når det ikke fremgår hvad de er svar på.

De svarer på dit indlæg ovenfor, afsnit for afsnit.

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Louis Andersen 28. aug. 2010 - 23.59
 
Re: PHK
Men Peter Denning forstod det, og det tæller meget for mig.

Ehm...

Det giver ikke mening at snakke om 30% af teoretisk ydelse lige meget hvordan du end vender eller drejer det, sorry. PD eller ej. Dit argument må bero på at man ikke lærer at skrive optimeret kode. Men ærligt talt, det er ikke rocket science.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 29. aug. 2010 - 06.11
 
Re: PHK
Men ærligt talt, det er ikke rocket science.

Jeg formoder du mener:

"Men ærligt talt, det er ikke datalogi."

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 29. aug. 2010 - 10.58
 
Re: PHK

OK, så kunne du måske besvare mit indlæg? :)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 29. aug. 2010 - 11.36
 
Re: PHK

Det mener jeg så rigeligt jeg har gjort, nu er vi vist bare ude i flueknepperi fra din side. F.eks har jeg aldrig påstået at det jeg har lavet var en COA.

Istedet kunne du måske besvare følgende spørgsmål:

Har valg og optimering af datastrukturer i forhold til virkelige computere noget med datalogi at gøre ?

Såvidt jeg læser dine indlæg kan du ikke se sammenhængen...

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Hans-Kristian Bjerregaard 29. aug. 2010 - 12.06
 
Re: PHK
Har valg og optimering af datastrukturer i forhold til virkelige computere noget med datalogi at gøre ?

Ja, men det er kun en meget lille del af hvad datalogien omfatter.

Bemærk: Som med så meget andet der tangerer til humaninsme (defenitionen af hvad der ligger i begrebet datalogi) er det noet der ikke kan siges absolut og derfor diskuteres meget. Dette er bare min ydmyge tolkning.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Henrik Schmidt 29. aug. 2010 - 12.19
 
Re: PHK
Har valg og optimering af datastrukturer i forhold til virkelige computere noget med datalogi at gøre ?

Ja. http://www.madalgo.au.dk/index.html

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 29. aug. 2010 - 12.39
 
Re: PHK

Det har det da i høj grad! Jeg har aldrig påstået at dette ikke lå indenfor datalogiens problemfelt. Tværtimod har jeg påpeget, at der er forsket en del i det! Blander du mine indlæg sammen med en andens eller hur?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 29. aug. 2010 - 13.00
 
Re: PHK

Nej det gør jeg ikke.

Jeg undrer mig bare over at du henviser til COA forskningen som bevis på at der sker noget, for snart efter at indrømme at COA er obskurt og stort set ubrugeligt i praksis.

Hvor er så den forskning der kan bruges til noget ?

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 29. aug. 2010 - 13.15
 
Re: PHK

Hvor har jeg henvist til COA forskningen som argument for at 'der sker noget' på dette område? Så vidt jeg kan se er det kun dig der har henvist til COA-forskningen på denne måde. Det eneste jeg har sagt er at det du har lavet ikke er COA! Og det er snarere end en ros end en kritik - har ikke set noget COA der havde den store praktiske relevans endnu (derfor kan det jo være interessant nok).

Den forskning der kan bruges er spredt i forskellige artikler, indenfor de områder hvor det er relevant. F.eks. hvis man anvender suffix trees og søger på det på Citeseer, så finder man hurtigt ud af at der er noget der hedder suffix arrays som er meget smartere, bl.a. pga. den forbedrede locality.

Nu var det binary trees i dit eksempel - jeg Googlede lidt og et oplagt sted at starte kunne være:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.9069
(Memory Reference Locality and Periodic Relocation in Main Memory Search Trees)

www.cs.hut.fi/~cessu/papers/msc.ps
(Memory Reference Locality in Binary Search Trees)

Min pointe er at problematikken skam er blevet behandlet, men det er selvfølgelig ikke noget hver eneste CS forsker arbejder med :)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Lasse Reinholt 29. aug. 2010 - 13.23
 
Blahhhh blah, han buldrer bare videre

Hej PHK,

Caching og virtuel memory er trivielt og alle dataloger kender det.

Algoritmer og maskinarkitektur er blot to forskellige adskildte discipliner, og det er meningen, at forskere, studerende og udviklere selv sammenkobler det.

Det, du fejlagtigt gør, er at henvise til algoritmebøgerne alene, og påpeje, at hardwaren ikke indgår.

Derfor har jeg gang på gang linket til undervisningesbøgerne i hardware, fx i mine tråde på http://www.version2.dk/artikel/15212-jeg-har-vaeret-jer-utro#post72384

Disse links har du hver gang ignoreret.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 29. aug. 2010 - 13.33
 
Re: Blahhhh blah, han buldrer bare videre
Algoritmer og maskinarkitektur er blot to forskellige adskildte discipliner, og det er meningen, at forskere, studerende og udviklere selv sammenkobler det.

Det er en meget præcis opsummering af min kritik: Sikke da en tåbelig måde at indrette et studie på.

Poul-Henning

PS: dine links giver 404

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Sonne 29. aug. 2010 - 13.38
 
Re: Blahhhh blah, han buldrer bare videre
Hvor er så den forskning der kan bruges til noget ?

Helt overordnet kan forskning deles i 2 lejre:

  1. Grundforskning: Forskningen har ikke et bestemt anvendelsesformål for øje. I stedet er formålet blot at opnå viden.

  2. Anvendelsesrettet forskning: Forskning med et konkret anvendelsesformål for øje og ofte betragtet som erhvervsrettet forskning.

Uden 1. ville 2. hurtigt komme til kort. Alle store opdagelse inden for videnskaben er opstået med udgangspunkt i grundforskningens resultater.

Algoritmer og maskinarkitektur er blot to forskellige adskildte discipliner, og det er meningen, at forskere, studerende og udviklere selv sammenkobler det.

I så fald er det netop årsagen til den manglende viden på området. På laveste niveau kan viden deles ind i kasser. Men efterhånden som vidensniveauet stiger, må kassernes afgrænsninger brydes og erstattes af helhedstænkning. Det kaldes i nogle sammenhænge tværfaglighed. I virkligheden er det blot niveauet over kassetænkning.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Lasse Reinholt 29. aug. 2010 - 14.25
 
Re: Blahhhh blah, han buldrer bare videre
Det er en meget præcis opsummering af min kritik: Sikke da en tåbelig måde at indrette et studie på.

Det virker fint. Jeg selv skrev bacheloropgave i noget, hvor jeg kombinerede det. I flere kandidatkurser forventes det at kombinere det (Klyngearkitekturer, bl.a.). At lære at kombinere viden fremfor at ske-fodres er en god ting.

PS: dine links giver 404

Så var det godt, at du klikkede på de Google Books dengang jeg pastede dem.[quote]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Lasse Reinholt 29. aug. 2010 - 15.47
 
Re: PHK
Min pointe er at problematikken skam er blevet behandlet, men det er selvfølgelig ikke noget hver eneste CS forsker arbejder med :)

Og jeg kan da supplere med http://cphstl.dk/ som to fra DIKU, jeg kender, skrev bachelorprojekt i.

De optimerede rød/sort søgetræer ved at bruge laveste bit i pointere (som alligevel har større end byte grannularitet) som farveindikator.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Andersen 29. aug. 2010 - 20.36
 
Jeg opgiver

Jeg opgiver, det er umuligt at diskutere med PHK som - forståeligt nok - foretrækker at diskutere med sin egen stråmand. F.eks. hævder han at jeg skulle have lovprist COA, hvilket er noget være sludder, hvad alle jo straks kan forvisse sig om. Han har heller ikke svaret på mine indvendinger, men har skrevet direkte vrøvl. Desuden gengiver hans blogindlæg ikke den primære kritik af hans artikel (You are doing it wrong). Slut herfra.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Meego-afløseren Tizen klar til at tage kampen op med Android

Udgivet 23. maj 16.01Opdateret 23. maj 16.01

Massiv logning af danskernes internetbrug - men politiet bruger kun IP-adressen

Udgivet 23. maj 15.22Opdateret 23. maj 15.22

198 IBM-medarbejdere fritstillet med øjeblikkelig virkning

Udgivet 23. maj 14.28Opdateret 23. maj 15.10

Mystisk Project X afsløret: Rent flashlager giver fænomenal IOPS-ydelse

Udgivet 23. maj 14.19Opdateret 23. maj 14.19

Region sparer licens-millioner på at lukke ”Grønt System”

Udgivet 23. maj 13.22Opdateret 23. maj 13.22

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. HTML5 – det nye sort?

    12 comments.
    Last update 1 time 38 minutter
    Skrevet af Kristian Dalgård
  2. Netflix bruger sit eget API 42 milliarder gange - om måneden

    2 comments.
    Last update 2 timer 14 minutter
    Skrevet af Martin Jensen
  3. Dart: Dynamisk Statisk Programmering

    20 comments.
    Last update 3 timer 46 minutter
    Skrevet af Lars Bjerregaard
  4. Microsoft fjerner umoderne bling-effekter i Windows 8

    49 comments.
    Last update 4 timer 20 sekunder
    Skrevet af Jesper Lund Stocholm
  5. NemID sender Mac-styresystem fra 2009 ud i kulden

    31 comments.
    Last update 4 timer 4 minutter
    Skrevet af Jan Peter Bagge
  6. Clojure-opfinder fupper publikum med falske kodefakta

    2 comments.
    Last update 4 timer 10 minutter
    Skrevet af Allan Ebdrup
  7. Skulle du aldrig lave en WP app?

    33 comments.
    Last update 4 timer 12 minutter
    Skrevet af Lars Bjerregaard
  8. Meego-afløseren Tizen klar til at tage kampen op med Android

    3 comments.
    Last update 6 timer 4 minutter
    Skrevet af Bjørn Froberg

Mere debat »

It-virksomheder

Byggeweb
|
Pekke
|
Praktisk IT
|
EVRY Danmark A/S
|
Delegate
|
Contest
|
Invokers
|
Simpelt Regnskab
|
Coolsms
|
Ricoh Danmark
|
Reload!
|
Agema
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300