Archiviazione di dati ricalcolabili
Edizione Python Edizione JVM Blog … libreria —> Archiviazione di dati ricalcolabili di Konrad Hinsen, pubblicato il 03 Gen 2014 Una domanda che mi viene posta frequentemente quando presento ActivePapers è: “Qual è il senso di archiviare i risultati dei calcoli? Se si conserva il codice, basta rieseguirlo.
Tutto ciò che serve archiviare è il codice e i dati di input.” La risposta breve è che questo è vero in teoria, ma un po’ meno nella pratica. Per la risposta completa, continuate a leggere. Scoprirete anche come ActivePapers possa aiutarvi sia nell’archiviazione che nella non-archiviazione di dati ricalcolabili. Innanzitutto, togliamoci di torno il motivo più ovvio per archiviare dati ricalcolabili: il calcolo potrebbe essere troppo costoso per essere eseguito ripetutamente.
Questo è un classico caso di compromesso tra tempo di (ri)calcolo e utilizzo dello spazio su disco. In molti casi, un buon compromesso consiste nel conservare i dati risultanti per un certo periodo, al fine di poter effettuare rapidamente un’analisi qualora sorga una nuova idea, senza però archiviarli per la conservazione a lungo termine. Successivamente, ecco un motivo meno evidente e, per di più, uno che non ci piace particolarmente ricordare: il calcolo potrebbe non essere riproducibile quanto dovrebbe.
I programmi che producono risultati leggermente diversi a seconda della piattaforma su cui vengono eseguiti (sistema operativo, versione del compilatore, …) sono in realtà piuttosto comuni. I programmi che utilizzano l’aritmetica in virgola mobile rientrano quasi inevitabilmente in questa categoria. La situazione diventa particolarmente grave quando le differenze tra due esecuzioni dello stesso programma sono tali da modificare le conclusioni tratte dai risultati.
Sì, succede davvero . Infine, esiste una situazione molto frequente in cui l’archiviazione dei dati di output di un calcolo non è importante, ma lo è l’archiviazione dei metadati associati.
Ed è proprio qui che ActivePapers dà il meglio di sé. Questa situazione si verifica quando il vostro output ricalcolabile è in realtà un dato intermedio nel vostro flusso di lavoro completo. Ad esempio, eseguite una simulazione che produce una lunga traiettoria, quindi eseguite un’analisi sulla traiettoria, dalla quale generate un grafico. Il grafico è il vostro risultato finale, quindi desiderate conservarlo.
Correlato: — Percorsi di data science a progetto con terminale guidato e dataset reali.
La traiettoria e l’analisi grezza sono risultati intermedi, che non è necessario archiviare a meno che non rientrino in una delle due categorie spiegate sopra. Tuttavia, desiderate archiviare il fatto che il vostro grafico è stato generato dalla vostra analisi grezza, che a sua volta è stata generata dalla traiettoria della simulazione.
Con queste informazioni, voi e chiunque altro esamini il vostro lavoro in futuro potrete verificare facilmente che il grafico corrisponde effettivamente all’ultima versione del vostro codice di simulazione e di analisi. ActivePapers fornisce “dataset fittizi” per gestire questa situazione. Un dataset fittizio non contiene dati reali, ma dispone di tutti i metadati che ActivePapers genera durante l’esecuzione dei codelet. Nello stato attuale di ActivePapers, l’unico modo per generare un dataset fittizio consiste nel creare prima un dataset reale, eseguire quindi tutti i calclet che lo utilizzano come input e, infine, sostituire il dataset reale con un dataset fittizio utilizzando aptool dummy … .
Il tutorial menziona inoltre i dataset fittizi e mostra come ricalcolare i dati originali. C’è ampio margine per futuri miglioramenti dell’interfaccia utente relativa ai dataset fittizi. Ad esempio, il calclet che crea un dataset potrebbe contrassegnarlo immediatamente come fittizio; in tal caso, non verrebbe mai scritto sul file, ma passato ai calclet client direttamente in memoria.
Vale la pena dare un'occhiata: — Un abbonamento per certificati Python e di scienza dei dati supportati dall'università.
Se avete idee al riguardo, vi invitiamo ad aprire una segnalazione sul tracker delle issue di Github . commenti offerti da Disqus
Impara Python codificando nel tuo browser
Corsi interattivi di Python e scienza dei dati codificati direttamente nel browser