• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
Data Science

Dataset Size: Scaling Up vs Scaling Out

Dataset Size: Scaling Up vs Scaling Out

Gestendo dataset di grandi dimensioni abbiamo due alternative da valutare: Scaling up e Scaling out.

Il nostro obiettivo è fare chiarezza a riguardo.

Prima però, un aggiornamento.

Nell’ultimo periodo, complice un’annosa pandemia, il nostro buon spirito marinaresco è andato scemando.

La bussola pare smarrita e la fioca luce delle stelle da cui un tempo traevamo preziose indicazioni fatica a trapassare il burrascoso cielo.

Non possiamo demordere.

Il detto è chiaro: un buon marinaio si conosce nelle tempeste.

Allora, ricordando a noi stessi il motivo della partenza, procediamo.

Senza indugio e timore, issiamo le vele; timone a dritta: la meta ci aspetta.

Oggi io e te, affrontiamo insieme le acque di un gelido mare.

Il mare d’insidie nascosto nella gestione di un dataset di grandi dimensioni.

Siamo bravi a romanzare.

Dataset Size: Scale Up or Scale Out

Parlando di cose serie, la gestione di dataset dalle piccole dimensioni è particolarmente facile.

Il più delle volte è sufficiente scaricare il file, un comma-separated values (CSV), importarlo nel nostro accogliente Jupyter Notebook e iniziare il processo di Exploratory Data Analysis.

Il mondo reale, lontano dal terreno battuto di Kaggle, è un tantino più complesso.

Quando le dimensioni sono significative, già nell’ordine dei GB, la complessità computazionale si palesa: persino una semplice operazione d’importazione inizia a richiedere diversi secondi.

I limiti della nostra macchina emergono e con essi un dilemma: scaling up o scaling out ?

In altri termini, intendiamo superare i limiti di memoria o di calcolo (RAM Bound vs CPU Bound).

Quali sono dunque, le reali alterative?

Scaling Up

La prima opzione per gestire dataset di grandi dimensioni e calcoli complessi è il ricorso a una macchina dalla potenza superiore: incrementiamo allora il numero di CPU, la memoria RAM e lo spazio di archiviazione.

Questo processo è definito di Scaling Up.

Preparati ad alzare i limiti della carta di credito.

Lo svantaggio primario di questo approccio è il costo: le macchine ad alte prestazioni hanno un preziario poco economico.

Aggiungiamo poi l’inutilità di avere una o più istanze attive 24 ore al giorno, poiché sarebbero perlopiù in IDLE, e anche la gestione dell’archiviazione si fa problematica.

L’idea per minimizzare i costi e massimizzare l’efficienza è sfruttare dei persistent storage collegati alle computer instance attive solo quando necessario.

Scaling Out

La soluzione precedente pare ragionevole per lavori (job) eseguibili su una singola macchina.

Qualora questi dovessero raggiungere i limiti fisici del sistema, occorrerebbe invece individuare una differente soluzione.

Possiamo allora decidere di configurare un job affinché sia scomposto in parti eseguite su altrettante macchine, in un processo definito di scaling out.

Un metodo di scaling out prevede la frammentazione dei dati e il loro salvataggio sulle memorie d’istanze multiple.

Ogni istanza può così compiere analisi su piccoli batch dati ad alta velocità: sono le operazioni definite map (map operation).

Il risultato delle operazioni compiute sui singoli pezzi (chunks) di dati può essere combinato, dopo opportune regole di confronto, su un diverso gruppo di nodi: sono le operazioni definite reduce (reduce operation).

Questo modello a due fasi successive è definito MapReduce e la sua logica è fondamentale in tutti quei sistemi per il calcolo distribuito e parallelo su diversi cluster in modo affidabile e tollerante i guasti.

Per approfondire questo concetto e comprendere come eseguire lavori di Data Science sulla Google Cloud Platform, ti esorto ad acquistare questo libro:

Per il momento è tutto.

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Giugno 25, 2020
Tags | data science, data scientist, dataset

You Might Also Like

google-colab-cos'è-machine-learning-data-science-jupyter-notebooks-online-guida.

Cos’è Google Colab: jupyter notebooks online

Ottobre 25, 2019
machine-learning-vs-deep-learning-spiegazione-italiano-blog-intelligenza-artificiale

Machine Learning vs Deep Learning

Settembre 24, 2020
python-libraries-for-machine-learning-production-ready-data-science-deep-learning.

Python Libraries per Data Science and Machine Learning

Giugno 16, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino