Prefazione
Quando pensi al calcolo ad alte prestazioni, potresti immaginare giganteschi cluster di macchine che modellano complessi fenomeni meteorologici o cercano di capire i segnali nei dati raccolti su stelle lontane. È facile pensare che solo chi costruisce sistemi specializzati debba preoccuparsi delle prestazioni del proprio codice. Prendendo questo libro, hai fatto un passo avanti verso l'apprendimento della teoria e delle pratiche necessarie per scrivere codice altamente performante. Ogni programmatore può trarre beneficio dalla comprensione di come costruire sistemi performanti.
Esiste un'ovvia serie di applicazioni che sono al limite del possibile e che non potrai affrontare senza scrivere codice dalle prestazioni ottimali. Se questa è la tua prassi, sei nel posto giusto. Ma c'è un insieme molto più ampio di applicazioni che possono trarre vantaggio da un codice performante.
Spesso pensiamo che siano le nuove capacità tecniche a guidare l'innovazione, ma a me piacciono anche le capacità che aumentano l'accessibilità della tecnologia di ordini di grandezza. Quando qualcosa diventa dieci volte più economico in termini di tempo o di costi di calcolo, improvvisamente l'insieme di applicazioni che puoi affrontare è più ampio di quanto immaginassi.
La prima volta che questo principio si è manifestato nel mio lavoro è stato più di dieci anni fa, quando lavoravo in un'azienda di social media e abbiamo condotto un'analisi su diversi terabyte di dati per determinare se le persone ...