Ciao, e benvenuto nell'ottava puntata dell'ottantesima stagione. Conosciamo i limiti e le forme. Oggi vediamo dove il parallelismo vive davvero: la scala dell'hardware vero, da due amici a una squadra a due città. La stessa idea a ogni gradino, ma i costi cambiano con la distanza. Il titolo: due amici, una squadra, due città.
La stessa idea a ogni scala. Il parallelismo non è una cosa sola che vive in un posto solo. È la stessa idea, molte cose nello stesso momento, che torna livello dopo livello di una macchina, ognuno un trasloco diverso con le sue distanze e i suoi costi. Saliamo la scala, quattro gradini che vale la pena conoscere.
Primo gradino: dentro un singolo lavoratore. Perfino una persona sola fa in sordina più piccole cose insieme: allunga la mano verso la prossima scatola mentre posa questa. L'hardware sovrappone i passi minuti in modo invisibile; non lo gestisci tu, ma è il primo gradino, ed è il motivo per cui un singolo lavoratore è più veloce dei suoi passi messi rigidamente uno in fondo all'altro. Lo ottieni gratis.
Secondo gradino: pochi amici nella stessa casa. Una manciata di aiutanti nello stesso posto, pochi nuclei sullo stesso chip, che condividono le stesse stanze e le stesse scorte. È il parallelismo di tutti i giorni di ogni computer moderno: poche mani potenti e generali, vicine, che possono parlarsi a buon mercato perché sono nella stessa casa. Ottimo per pochi compiti grossi; limitato alle poche mani che hai.
Terzo gradino: una grande squadra che fa tutta lo stesso gesto. Ora una forma molto diversa: non pochi amici svegli, ma un'enorme squadra di mani semplici, centinaia o migliaia, tutte che fanno lo stesso identico movimento in sincronia, tutti sollevano, tutti un passo, tutti posano, insieme. Nessuno è sveglio o indipendente; si muovono come uno, su una montagna di oggetti identici. È pessima per compiti diversi, possono fare solo la stessa cosa, ma imbattibile per la stessa operazione su una montagna di dati, la forma stesso compito della scorsa puntata, a scala enorme. È per questo che certi lavori, le immagini, i modelli, le simulazioni, volano su questo hardware e altri non lo sfiorano: la squadra aiuta solo se il tuo lavoro è una montagna di trasporti identici.
Quarto gradino: squadre in città diverse. Il gradino più alto, non un edificio ma molti, in città diverse, coordinati. Capacità totale enorme, ma ora le distanze sono grandi: una domanda gridata tra città è molto più lenta di una parola all'amico accanto. Tutto quello della puntata sul coordinamento diventa molto più caro, e le trappole dello stato condiviso più dure. Questo gradino compra una scala quasi illimitata e la paga in comunicazione e nei problemi difficili di tenere d'accordo squadre lontane, tutto il mondo dei sistemi distribuiti.
La lezione che unisce tutto. La stessa idea, quattro scale, un'unica regola che cambia con la distanza: più i lavoratori sono lontani, più il coordinamento costa, quindi più indipendente deve essere il lavoro per valere la divisione. Dentro un nucleo, sovrapporre è gratis. Pochi nuclei condividono a buon mercato, quindi parallelizzi anche lavoro un po' legato. La grande squadra identica vuole che il lavoro sia una montagna uniforme. E tra città, sopravvive solo il lavoro quasi del tutto indipendente. Più sali per avere più potenza totale, più si alza l'asticella dell'abbastanza indipendente. Scegliere il gradino giusto è far combaciare l'indipendenza e la forma del tuo lavoro con il livello i cui costi può permettersi.
E la morale pratica. Dovrei parallelizzare, e come? è in realtà quale gradino calza questo lavoro? Pochi compiti grossi, un po' legati? I pochi nuclei vicini, quasi automatico. Una montagna di calcoli identici? La grande squadra, se il tuo lavoro entra nella sua forma rigida. Più di una macchina intera, e i pezzi quasi indipendenti? Il gradino delle città, mettendo in conto le chiacchiere. Montagne dello stesso gesto alla squadra, compiti grossi ai nuclei, e solo il lavoro più indipendente tra le macchine; e non mandare lavoro strettamente legato a un gradino lontano, dove il parlare si mangia tutto quello che avevi guadagnato.
Voglio lasciarti con la scala del parallelismo e la sua unica regola. È la stessa idea a ogni gradino: dentro un lavoratore, tra pochi amici nella stessa casa, in una grande squadra che fa tutta lo stesso gesto, tra squadre in città diverse. Ma più i lavoratori sono lontani, più il coordinamento costa, e più il lavoro deve essere indipendente per valere la divisione. Perciò la domanda non è solo parallelizzo o no, ma a quale gradino appartiene questo lavoro: montagne di gesti identici alla grande squadra, pochi compiti grossi ai pochi nuclei vicini, e solo il lavoro quasi del tutto indipendente alle città lontane. Scegli il gradino i cui costi il tuo lavoro può permettersi.
Per oggi ci fermiamo qui. Abbiamo salito la scala del parallelismo: dentro un lavoratore, dove la sovrapposizione è gratis; i pochi nuclei nella stessa casa, che condividono a buon mercato; la grande squadra che fa tutta lo stesso gesto, imbattibile sulle montagne di dati identici; e le squadre in città diverse, scala enorme pagata in comunicazione. E l'unica regola: più lontano, più caro il coordinamento, più indipendente deve essere il lavoro. Nella prossima puntata: quando basta una persona. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.