Lagra beräkningsbar data
Python-utgåva JVM-utgåva Blogg … bibliotek —> Lagring av beräkningsbar data av Konrad Hinsen, publicerad den 03 jan 2014 En fråga jag ofta får när jag presenterar ActivePapers är: “Varför lagra resultat från beräkningar? Om du sparar koden kan du ju bara köra den igen.
Allt du behöver lagra är kod och indata.” Det korta svaret är att detta stämmer i teorin, men i praktiken är det inte alltid lika enkelt. För det utförliga svaret, fortsätt läsa. Du kommer också att få veta hur ActivePapers kan hjälpa dig både med att lagra och att inte lagra beräkningsbar data. Låt oss först undanröja den uppenbara anledningen till att lagra beräkningsbar data: beräkningen kan vara för kostsam att utföra upprepade gånger.
Detta är ett klassiskt exempel på en avvägning mellan tid för (om)beräkning och användning av lagringsutrymme. I många fall är en bra kompromiss att behålla resultatdata under en begränsad tid, så att du snabbt kan analysera dem om du får en ny idé, utan att arkivera dem för långtidsförvaring. Därefter följer en mindre uppenbar anledning, och dessutom en som vi ogärna påminns om: beräkningen kanske inte är så reproducerbar som den borde vara.
Program som ger något olika resultat beroende på vilken plattform de körs på (operativsystem, kompilatorversion, etc.) är faktiskt ganska vanliga. Program som använder flyttalsaritmetik hamnar nästan oundvikligen i denna kategori. Det blir särskilt problematiskt när skillnaderna mellan två körningar av programmet är så stora att slutsatserna som dras från resultaten förändras.
Ja, detta händer verkligen. Slutligen finns det en mycket vanlig situation där det inte är viktigt att lagra utdata från en beräkning, men däremot är det avgörande att lagra tillhörande metadata.
Och det är här ActivePapers verkligen excellerar. Denna situation uppstår när din beräkningsbara utdata egentligen är mellanliggande data i ditt övergripande arbetsflöde. Till exempel kör du en simulering som genererar en lång bana, därefter utför du en analys på banan, varifrån du skapar ett diagram. Diagrammet är ditt slutresultat, så det vill du behålla.
Relaterat: — Interaktiva Python- och datavetenskapskurser kodar du direkt i webbläsaren.
Banan och den råa analysen är mellanresultat, som du inte behöver lagra såvida de inte faller inom någon av de två ovan nämnda kategorierna. Men du vill gärna dokumentera att ditt diagram genererades från din råa analys, som i sin tur genererades från simuleringsbanan.
Med denna information kan du, och alla andra som senare granskar ditt arbete, enkelt verifiera att diagrammet faktiskt motsvarar den senaste versionen av din simulations- och analyskod. ActivePapers tillhandahåller “dummy-dataset” för att hantera denna situation. Ett dummy-dataset innehåller inga faktiska data, men det har all metadata som ActivePapers genererar under exekveringen av codelets. I nuläget är det enda sättet att skapa ett sådant dummy-dataset att först generera ett riktigt dataset, sedan köra alla calclets som använder det som indata, och slutligen ersätta det riktiga datasetet med ett dummy-dataset med hjälp av aptool dummy … . handledningen nämner också dummy-dataset och visar hur man kan beräkna om de ursprungliga data.
Det finns gott om utrymme för framtida förbättringar av användargränssnittet för dummy-dataset. Till exempel skulle den calclet som skapar ett dataset kunna markera det som ett dummy-dataset direkt, varpå det aldrig skrivs till fil utan istället skickas vidare till klient-calclets i minnet. Om du har några idéer kring detta, vänligen öppna ett ärende på Githubs issue-tracker . kommentarer drivs av Disqus
Tjäna certifikat från riktiga universitet
En prenumeration för universitetsstödda Python- och datavetenskapliga certifikat