Lagring af genberegnelige data
Python-udgave JVM-udgave Blog … bibliotek —> Lagring af genberegnelige data af Konrad Hinsen, offentliggjort den 03. jan. 2014 Et hyppigt spørgsmål, jeg får, når jeg præsenterer ActivePapers, er: “Hvad er formålet med at gemme beregningsresultater?
Hvis du beholder koden, kan du bare køre den igen. Alt, du需要 at gemme, er kode og inddata.” Det korte svar er, at det er sandt i teorien, men lidt mindre sandt i praksis. For det lange svar, læs videre. Du vil også lære, hvordan ActivePapers kan hjælpe dig både med at lagre og ikke-lagre genberegnelige data.
Lad os først få den åbenlyse årsag til at lagre genberegnelige data ud af verden: Beregningen kan være for ressourcekrævende til at blive kørt gentagne gange. Det er et klassisk tilfælde af en afvejning mellem (gen-)beregningstid og brug af diskplads. I mange tilfælde er en god kompromisløsning at beholde de resulterende data i en periode, så man hurtigt kan analysere dem, hvis man får en ny idé, men ikke arkivere dem til langtidslagring.
Dernæst en mindre åbenlys årsag, og ovenikøbet en årsag, vi ikke rigtig bryder os om at blive mindet om: Beregningen er måske ikke så reproducerbar, som den burde være. Programmer, der producerer lidt forskellige resultater afhængigt af den platform, de køres på (operativsystem, compilatorversion osv.), er faktisk ret almindelige. Programmer, der bruger flydende-kommearitmetik, falder næsten uundgåeligt i denne kategori.
Det bliver særligt slemt, når forskellene mellem to kørsler af programmet er så store, at de konklusioner, der drages af resultaterne, ændrer sig. Ja, det sker .
Endelig er der en meget hyppig situation, hvor det ikke er vigtigt at gemme outputdataene fra en beregning, men hvor det er vigtigt at gemme de tilhørende metadata. Og det er her, ActivePapers virkelig skinner. Den situation opstår, når dit genberegnelige output reelt er mellemliggende data i din samlede workflow. For eksempel kører du en simulation, der producerer en langvarig trajektorie, derefter kører du en analyse på trajektorien, hvorfra du genererer et plot.
Relateret: — Interaktive Python- og datavidenskabskurser koder du direkte i browseren.
Plottet er dit endelige resultat, så du vil gerne beholde det. Trajektorien og den rå analyse er mellemresultater, som du ikke behøver at gemme, medmindre de falder ind under en af de to kategorier, der er forklaret ovenfor.
Men du vil gerne gemme oplysningen om, at dit plot blev genereret ud fra din rå analyse, som igen blev genereret ud fra simulationens trajektorie. Med disse oplysninger kan du – og alle andre, der senere ser på dit arbejde – nemt verificere, at plottet faktisk svarer til den seneste version af din simulations- og analysekode. ActivePapers tilbyder “dummy-datasæt” til håndtering af denne situation. Et dummy-datasæt indeholder ingen faktiske data, men det har alle de metadata, som ActivePapers genererer under udførelsen af codelets.
I den nuværende tilstand af ActivePapers er den eneste måde at generere et sådant dummy-datasæt på først at generere et rigtigt datasæt, derefter køre alle de calclets, der bruger det som input, og til sidst erstatte det rigtige datasæt med et dummy-datasæt ved hjælp af aptool dummy … . Tutorialen nævner også dummy-datasæt og viser, hvordan man genberegner de oprindelige data. Der er masser af plads til fremtidige forbedringer af brugergrænsefladen til dummy-datasæt.
Læsernes favorit: — Projektbaserede datavidenskabelige stier med en guidet terminal og rigtige datasæt.
For eksempel kunne det calclet, der opretter et datasæt, markere det som et dummy med det samme, og så ville det aldrig blive skrevet til filen, men i stedet blive videregivet til klient-calclets i hukommelsen. Hvis du har nogen idéer til dette, skal du åbne en sag på Github issue tracker . kommentarer drevet af Disqus
Optjen certifikater fra rigtige universiteter
Ét abonnement på universitetsstøttede Python- og datavidenskabelige certifikater