Lagring av gjenberegnerbar data
Python-utgave JVM-utgave Blogg … bibliotek —> Lagring av rekonstruerbar data av Konrad Hinsen, publisert 03. jan 2014 Et spørsmål jeg ofte får når jeg presenterer ActivePapers, er: «Hva er poenget med å lagre resultater fra beregninger? Hvis du beholder koden, kan du jo bare kjøre den på nytt.
Alt du trenger å lagre, er kode og inndata.» Det korte svaret er at dette stemmer i teorien, men i praksis er det ikke alltid like enkelt. For det lange svaret, les videre. Du vil også få vite hvordan ActivePapers kan hjelpe deg både med å lagre og ikke lagre rekonstruerbar data. La oss først rydde unna den åpenbare grunnen til å lagre rekonstruerbar data: beregningen kan være for kostbar til å kunne kjøres gjentatte ganger.
Dette er et klassisk eksempel på en avveining mellom (om)beregningstid og bruk av disklagring. I mange tilfeller er en god løsning å beholde de resulterende dataene en stund, slik at du raskt kan analysere dem hvis du får en ny idé, uten nødvendigvis å arkivere dem langsiktig. Deretter kommer en mindre åpenbar grunn – og dessuten en grunn vi helst slipper å bli minnet på: beregningen er kanskje ikke like reproduserbar som den bør være.
Programmer som gir litt ulike resultater avhengig av hvilken plattform de kjøres på (operativsystem, kompilatorversjon, osv.), er faktisk ganske vanlige. Programmer som bruker flyttallsaritmetikk, havner nesten uunngåelig i denne kategorien. Det blir spesielt problematisk når forskjellene mellom to kjøringer av programmet er så store at konklusjonene som trekkes fra resultatene, endres.
Ja, dette skjer faktisk. Til slutt finnes det en svært hyppig situasjon der selve utdataene fra en beregning ikke er viktige å lagre, men den tilhørende metadataen er det.
Og det er her ActivePapers virkelig skinner. Denne situasjonen oppstår når din rekonstruerbare output egentlig er mellomliggende data i den komplette arbeidsflyten din. For eksempel kjører du en simulering som produserer en langvarig trajektorie, deretter kjører du en analyse av trajektorien, og fra dette genererer du et diagram. Diagrammet er ditt endelige resultat, så det ønsker du å beholde.
Relatert: — Prosjektbaserte datavitenskapelige stier med en guidet terminal og ekte datasett.
Trajektorien og den rå analysen er mellomresultater, som du ikke trenger å lagre med mindre de faller inn under en av de to kategoriene beskrevet ovenfor. Men du ønsker likevel å lagre informasjonen om at diagrammet ble generert fra den rå analysen, som igjen ble generert fra simuleringens trajektorie.
Med denne informasjonen kan du – og alle andre som senere ser på arbeidet ditt – enkelt verifisere at diagrammet faktisk samsvarer med den nyeste versjonen av simulerings- og analysekoden din. ActivePapers tilbyr «dummy-datasett» for å håndtere nettopp denne situasjonen. Et dummy-datasett inneholder ingen faktiske data, men har all metadataen som ActivePapers genererer under kjøring av codelets. I nåværende versjon av ActivePapers er den eneste måten å generere et slikt dummy-datasett på, først å lage et ekte datasett, deretter kjøre alle calclets som bruker det som inndata, og til slutt erstatte det ekte datasettet med et dummy-datasett ved hjelp av aptool dummy ....
Opplæringen nevner også dummy-datasett og viser hvordan man kan reberegne de opprinnelige dataene. Det er stort rom for fremtidige forbedringer av brukergrensesnittet knyttet til dummy-datasett. For eksempel kunne calcleten som oppretter et datasett, merke det som et dummy-datasett umiddelbart, slik at det aldri skrives til fil, men i stedet sendes direkte til klient-calclets i minnet.
Verdt en titt: — Ett abonnement for universitetsstøttede Python- og datavitenskapelige sertifikater.
Har du noen ideer til dette, vennligst åpne en sak på Github issue tracker . kommentarer drevet av Disqus
Lær Python ved å kode i nettleseren din
Interaktive Python- og datavitenskap-kurs koder du direkte i nettleseren