Il supercomputer Thorbjoern collegato ha circa 2 ^ 47 B di memoria fisica.
Supponendo che la Legge di Moore valga per la memoria dei supercomputer, diventerà 2 ^ 64 B di memoria fisica in soli 34 anni. È come "OMG, vivremo per vederlo !!!!". Può essere. E infatti, è affascinante. Ma altrettanto irrilevante.
La domanda è: ho bisogno di uno spazio di indirizzi a 128 bit per utilizzare 2 ^ 65 B di memoria fisica?
La risposta è NO . Ho bisogno di uno spazio di indirizzi a 128 bit per indirizzare 2 ^ 65 B di memoria virtuale da un singolo processo .
Questo è un punto chiave della tua domanda: "Le applicazioni del mondo reale avranno mai bisogno di uno spazio di indirizzamento piatto a 128 bit ?". " Need ", non assolutamente, puoi cavartela con meno, rendi lo spazio degli indirizzi mappato (non piatto); ma non avresti uno "spazio di indirizzamento piatto a 128 bit".
Ad esempio, supponi di voler assegnare agli atomi sulla Terra un indirizzo di memoria fisica (per qualsiasi motivo, principalmente per fornire questo semplice esempio), inizia da zero e continua a contare (torna da me quando hai finito). Ora qualcun altro desidera fare la stessa cosa su Kepler-10c (che è a 568 metri di distanza).
Non vorrai uno scontro di indirizzi, quindi l'altra persona alloca un indirizzo di memoria alta nello spazio di memoria piatto disponibile, che consente a te, loro e le persone successive di essere indirizzate direttamente , senza mappare la memoria. Se non lo farai o non riuscirai a cavartela senza una relazione uno a uno tra la tua memoria e il suo indirizzo (sei disposto a implementare una matrice sparsa), puoi cavartela con una misera memoria a 64 bit o meno.
Ogni volta che qualcuno propone " X quantità di Y sarà sufficiente " tale previsione spesso rimane di breve durata.
Quindi la domanda è: quanto presto avremo singoli processi , che usano 2 ^ 65 B di memoria. Spero mai.
Il grande problema del nostro tempo è che la potenza di elaborazione di una singola CPU è limitata. C'è un limite di dimensioni definito dalla dimensione degli atomi, e per una data dimensione, c'è un limite nella frequenza di clock, data dalla velocità della luce, la velocità con cui le informazioni sui cambiamenti nei campi magnetici vengono propagate nel nostro universo.
E in realtà, il limite è stato raggiunto qualche anno fa e ci siamo stabiliti a frequenze inferiori a quelle precedenti. La potenza della CPU non aumenterà più in modo lineare. Le prestazioni sono ora migliorate attraverso l'esecuzione fuori ordine, la previsione delle filiali, cache più grandi, più codici operativi, operazioni vettoriali e cosa no. C'è stata ottimizzazione architettonica .
E un'idea importante è quella della parallelizzazione. Il problema con la parallelizzazione è che non si ingrandisce. Se hai scritto codice lento 20 anni fa, ha funzionato molto più velocemente 10 anni fa. Se scrivi codice lento ora, non diventerà molto più veloce in 10 anni.
I processi che usano 2 ^ 65 B di memoria sono un segno della massima stupidità. Ciò dimostra che non c'è stata ottimizzazione architettonica . Per elaborare in modo ragionevole questi dati, occorrerebbero circa 10 milioni di core, la maggior parte dei quali impiegherebbe del tempo ad attendere la disponibilità di alcune risorse, poiché quei core che hanno effettivamente acquisito la risorsa utilizzano la memoria fisica su Ethernet su una macchina completamente diversa. La chiave per affrontare problemi grandi e complessi è scomporli in problemi piccoli e semplici e non costruire sistemi sempre più grandi e sempre più complessi. È necessario il partizionamento orizzontale quando si ha a che fare con sh * tload di dati.
Ma anche supponendo, questa follia dovrebbe andare avanti, certi che a 128 bit è sufficiente :
- La Terra ha circa 8,87e + 49 atomi , che sono 2 ^ 166 atomi che abbiamo .
- Supponiamo che costa 2 ^ 20 atomi per contenere un bit. Ciò include anche tutto il cablaggio e la plastica e l'energia che ne deriva. Non puoi semplicemente gettare i transistor in una scatola e chiamarlo un computer. Quindi 2 ^ 20 sembra piuttosto ottimista.
Per utilizzare lo spazio degli indirizzi a 128 bit, abbiamo bisogno di 2 ^ 133 bit, quindi 2 ^ 152 atomi di cui abbiamo bisogno . Supponendo un'equa distribuzione degli atomi sulla terra, vediamo quanta crosta dobbiamo prendere per ottenerli:
let
q := ratio of atoms needed to atoms present = 2^-14
Vc := volume of the crust to be used
Ve := volume of the earth
re := the radius of the earth = 6.38e6
tc := the required thickness of the crust
k := 0.75*pi
thus
Vc / Ve = q
(k*re^3 - k*(re-tc)^3) / (k*re^3) = q
1 - ((re-tc) / re)^3 = q
(re-tc)/re = root3(1-q)
tc = re * (1 - root3(1-q))
tc = 6.38e6 * (1 - (1 - 2^-14)^(1/3))
tc = 129.804073
Quindi hai 130 metri da percorrere su tutta la superficie (incluso l'80% coperto di acqua, sabbia o ghiaccio). Non succederà. Anche supponendo che tu possa scavare (lol) e tutta questa faccenda è adatta per essere trasformata in chip, dove otterrai l'energia?