Speicherung von neu berechenbaren Daten
Python-Edition JVM-Edition Blog … Bibliothek —> Speichern von neu berechenbaren Daten von Konrad Hinsen, veröffentlicht am 03. Jan 2014 Eine häufige Frage, die mir bei Präsentationen zu ActivePapers gestellt wird, lautet: „Wozu soll man überhaupt Ergebnisse von Berechnungen speichern?
Wenn man den Code behält, kann man ihn einfach erneut ausführen. Alles, was gespeichert werden muss, sind Code und Eingabedaten.” Die kurze Antwort darauf ist: Theoretisch stimmt das, praktisch sieht es jedoch etwas anders aus. Für die ausführliche Antwort lesen Sie weiter. Außerdem erfahren Sie, wie ActivePapers Ihnen sowohl beim Speichern als auch beim Nicht-Speichern von neu berechenbaren Daten helfen kann.
Zunächst der offensichtlichste Grund für das Speichern neu berechenbarer Daten: Die Berechnung könnte zu kostspielig sein, um sie wiederholt durchzuführen. Dies ist ein klassischer Fall eines Zielkonflikts zwischen (Neu-)Berechnungszeit und Nutzung des Festplattenspeichers. In vielen Fällen ist ein guter Kompromiss, die resultierenden Daten für eine gewisse Zeit vorzuhalten, um bei neuen Ideen eine schnelle Analyse durchführen zu können, ohne sie jedoch langfristig zu archivieren.
Als Nächstes ein weniger offensichtlicher Grund – und zudem einer, an den wir nicht gerne erinnert werden: Die Berechnung ist möglicherweise nicht so reproduzierbar, wie sie sein sollte. Programme, die je nach Plattform, auf der sie ausgeführt werden (Betriebssystem, Compilerversion usw.), leicht unterschiedliche Ergebnisse liefern, sind tatsächlich weit verbreitet. Programme, die Gleitkommaarithmetik verwenden, fallen fast unweigerlich in diese Kategorie.
Besonders problematisch wird es, wenn die Unterschiede zwischen zwei Programmläufen so groß sind, dass sich die aus den Ergebnissen gezogenen Schlussfolgerungen ändern. Ja, das kommt vor .
Schließlich gibt es eine sehr häufige Situation, in der das Speichern der Ausgabedaten einer Berechnung unwichtig ist, das Speichern der zugehörigen Metadaten jedoch entscheidend. Und genau hier glänzt ActivePapers. Diese Situation tritt auf, wenn Ihre neu berechenbaren Ausgaben eigentlich Zwischendaten in Ihrem gesamten Workflow sind. Sie führen beispielsweise eine Simulation durch, die eine lange Trajektorie erzeugt, analysieren diese Trajektorie und erstellen daraus eine Grafik.
Verwandte: — Projektbasierte Data-Science-Pfade mit geführtem Terminal und realen Datensätzen.
Die Grafik ist Ihr Endergebnis, das Sie behalten möchten. Die Trajektorie und die Rohanalyse sind Zwischenergebnisse, die Sie nur speichern müssen, wenn einer der beiden oben erläuterten Fälle zutrifft.
Dennoch möchten Sie dokumentieren, dass Ihre Grafik aus Ihrer Rohanalyse erstellt wurde, welche wiederum aus der Simulations-Trajektorie generiert wurde. Mit diesen Informationen können Sie – und jeder andere, der sich später Ihre Arbeit ansieht – problemlos verifizieren, dass die Grafik tatsächlich der neuesten Version Ihres Simulations- und Analyse-Codes entspricht. ActivePapers bietet „Dummy-Datasets” zur Bewältigung dieser Situation. Ein Dummy-Dataset enthält keine eigentlichen Daten, verfügt aber über alle Metadaten, die ActivePapers während der Ausführung von Codelets generiert.
Im aktuellen Stand von ActivePapers besteht die einzige Möglichkeit, ein solches Dummy-Dataset zu erzeugen, darin, zunächst ein echtes Dataset zu erstellen, dann alle Calclets auszuführen, die es als Eingabe verwenden, und schließlich das echte Dataset mithilfe von aptool dummy … durch ein Dummy-Dataset zu ersetzen. Das Tutorial erwähnt ebenfalls Dummy-Datasets und zeigt, wie die Originaldaten neu berechnet werden können. Es gibt noch viel Raum für zukünftige Verbesserungen der Benutzeroberfläche im Umgang mit Dummy-Datasets.
Einen Blick wert: — Ein Abonnement für von der Universität unterstützte Python- und Data-Science-Zertifikate.
Beispielsweise könnte das Calclet, das ein Dataset erstellt, dieses sofort als Dummy markieren; dann würde es nie auf die Festplatte geschrieben, sondern lediglich im Speicher an Client-Calclets übergeben. Falls Sie hierzu Ideen haben, eröffnen Sie bitte ein Issue im Github-Issue-Tracker . Kommentare bereitgestellt von Disqus
Lernen Sie Python, indem Sie in Ihrem Browser programmieren
Interaktive Python- und Data-Science-Kurse, bei denen Sie direkt im Browser programmieren