fbpx
Home News Riga di comando del Terminale Mac, batte cloud 235 a 1

Riga di comando del Terminale Mac, batte cloud 235 a 1

Si parla tanto di big data e della potenza del cloud. Ma alle volte basta un semplice Macbook Pro e la buona vecchia riga di comando del terminale Mac. Ecco una storia interessante da questo punto di vista raccontata un po’ di tempo fa Adam Drake.

Racconta Drake: “Ho trovato un bell’articolo di Tom Hayden sull’uso di Elastic Map Reduce (EMR) di Amazon e “mrjob” per calcolare alcune statistiche sulle percentuali di vincita e perdita in una serie di scacchi scaricate dal millionbase archive, e in generale sul divertirsi molto nel farlo”.

Lo scopo di questa operazione è fare dei calcoli statistici su un database di dati di testo che raccolgono i risultati accumulati negli anni su milioni di partite. Una quantità di dati relativamente contenuta, spiega Drake: “Poiché che il volume delle informazioni era di soli 1,75 Gb e conteneva circa due milioni di partite a scacchi, ero scettico che fosse necessario utilizzare Hadoop per questo tipo di attività, ma capivo bene che l’obiettivo potesse essere imparare divertendosi a usare mrjob ed EMR”.

La parte divertente dal punto di vista di Drake è però che questo tipo di analisi di dati si può fare anche in un altro modo, anziché utilizzando la potenza dei sistemi cloud come Hadoop (un insieme di librerie per la gestione di applicazioni distribuite in cluster, allo scopo di avere più flessibilità e soprattutto potenza di calcolo) anche perché “il problema essenzialmente era quello di guardare alla riga con il risultato della partita di ciascun file e aggregarli tutti assieme”. Si poteva cioè fare molto bene anche con il Terminale e la riga di comando.

Drake ci ha provato ed è stato capace di prendere lo stesso flusso di dati, caricarlo sul suo MacBook Pro e processarlo e avere il risultato in dodici secondi (velocità di processo dei dati di circa 270MB al secondo) mentre Hadoop ha avuto bisogno di circa 26 minuti, con una velocità di processo di 1,14MB al secondo.

La cosa interessante dell’approccio usato da Drake con l’uso della riga di comando è la funzionalità di stream dei calcoli che permette la parallelizzazione sul processore multicore disponibile anche in un semplice laptop. È un approccio sottoutilizzato ma i risultati, come anticipato, in questo caso sono stati clamorosi.

TERMINALE MAC

In breve (ma poi si può andare direttamente all’articolo di Drake per vedere come ha fatto nel dettaglio), prima di tutto ha capito quale fosse la forma delle informazioni (che in questo caso erano i file PGN utilizzati per archiviare i dati delle partite dagli addetti al settore), poi ha acquisito i dati di un campione e ha provato vari sistemi per costruire il flusso di lavoro nel terminale.

La parallelizzazione del calcolo ha consentito infatti di far procedere i singoli step insieme. I programmi utilizzati dentro il terminale, cioè la shell di Unix di OS X, sono stati prima cat e grepsort e uniq, e poi consolidato ulteriormente sort e uniq utilizzando il più potente awk.

Ecco così il primo tentativo di programma per la riga di comando con l’uso abbondante della fondamentale pipe (“|”) che è il modo inventato dai creatori di Unix per far passare l’output di un programma all’inut di quello successivo.

Fatto questo passaggio ha visto che il miglioramento, già notevole rispetto ad Hadoop, poteva essere ulteriormente portato avanti con un altro approccio, che è poi il comando finale (dopo vari tentativo e passando da awk a mawk utilizzando in sostanza questo scheletro di comandi: find | xargs mawk | mawk).

Quest’ultima implementazione è 235 volte più veloce di quella fatta utilizzando cluster di server nel cloud con la base della tecnologia Hadoop. Una cosa interessante da capire pensando che in questo modo si possono fare davvero tante cose con un semplice laptop e una buona conoscenza dei principi dell’informatica e del modo in cui si affrontano i problemi, più che con la (presunta) forza bruta del cloud.

Offerte Speciali

Amazon fa il miracolo: AirPods Pro pronta spedizione e in sconto

Airpods Pro prezzo top: solo 194 €

Su Amazon gli Airpods Pro tornano ad un ottimo prezzo: solo 194 euro
Pubblicità
Pubblicità

Seguici e aggiungi un Like:

64,805FansMi piace
93,097FollowerSegui