Le super ordinateur relié par Thorbjoern a environ 2 ^ 47 B de mémoire physique.
En supposant que la loi de Moore s'applique à la mémoire des super-ordinateurs, elle deviendra 2 ^ 64 B de mémoire physique en seulement 34 ans. C'est comme "OMG, nous vivrons pour voir ça !!!!". Peut être. Et en effet, c'est fascinant. Mais tout aussi hors de propos.
La question est la suivante: ai-je besoin d'un espace d'adressage de 128 bits pour utiliser 2 ^ 65 B de mémoire physique?
La réponse est NON . J'ai besoin d'un espace d'adressage de 128 bits pour adresser 2 ^ 65 B de mémoire virtuelle à partir d'un seul processus .
C'est un point clé de votre question, « Est-ce des applications du monde réel jamais besoin d' un 128 bits plat espace d'adressage? ». " Besoin ", pas absolument, vous pouvez vous en tirer avec moins, faire mapper l'espace d'adressage (pas plat); mais alors vous n'auriez pas un "espace d'adressage plat de 128 bits".
Par exemple, supposons que vous vouliez attribuer aux atomes sur Terre une adresse de mémoire physique (pour une raison quelconque, principalement pour avoir fourni cet exemple simple), commencez à zéro et continuez à compter (revenez à moi lorsque vous aurez terminé). Maintenant, quelqu'un d'autre désire faire la même chose sur Kepler-10c (qui est à 568 ly).
Vous ne voudriez pas d'un conflit d'adresses, donc l'autre personne alloue une adresse de mémoire élevée dans l' espace de mémoire plat disponible, ce qui vous permet, à eux et aux personnes suivantes, d'être directement adressés, sans mapper la mémoire. Si vous ne le ferez pas ou que vous pourrez vous passer d'une relation un à un entre votre mémoire et son adresse (vous êtes prêt à implémenter un tableau fragmenté), vous pouvez vous en tirer avec une mémoire de 64 bits, ou moins.
Chaque fois que quelqu'un propose " X quantité de Y sera suffisante ", une telle prédiction reste souvent de courte durée.
La question est donc: combien de temps aurons-nous des processus uniques , qui utilisent 2 ^ 65 B de mémoire. J'espère jamais.
Le gros problème de notre temps est que la puissance de traitement d'un seul processeur est limitée. Il y a une limite de taille définie par la taille des atomes, et pour une taille donnée, il y a une limite de la fréquence d'horloge, donnée par la vitesse de la lumière, la vitesse à laquelle l'information sur les changements de champs magnétiques se propage dans notre univers.
Et en fait, la limite a été atteinte il y a quelques années et nous nous sommes installés à des taux d'horloge inférieurs à ce qu'ils étaient auparavant. La puissance du processeur n'augmentera plus linéairement. Les performances sont désormais améliorées grâce à une exécution dans le désordre, à la prédiction de branche, à des caches plus importants, à plus de codes d'opération, à des opérations vectorielles, etc. Il y a eu une optimisation architecturale .
Et une idée importante est celle de la parallélisation. Le problème de la parallélisation est qu'elle ne prend pas de l'ampleur. Si vous avez écrit du code lent il y a 20 ans, cela a fonctionné beaucoup plus rapidement il y a 10 ans. Si vous écrivez du code lent maintenant, il ne sera pas beaucoup plus rapide dans 10 ans.
Les processus qui utilisent 2 ^ 65 B de mémoire sont un signe de stupidité extrême. Cela montre qu'il n'y a pas eu d' optimisation architecturale . Pour traiter judicieusement ces données, vous auriez besoin d'environ 10 millions de cœurs, dont la plupart passeraient du temps à attendre qu'une ressource soit disponible, car les cœurs qui ont effectivement acquis la ressource utilisent la mémoire physique sur Ethernet sur une machine complètement différente. La clé pour traiter de gros problèmes complexes est de les décomposer en petits problèmes simples et de ne pas construire des systèmes de plus en plus grands et de plus en plus complexes. Vous avez besoin d'un partitionnement horizontal, lorsque vous traitez avec des sh * tloads de données.
Mais même dans l' hypothèse, cette folie devrait continuer, rassurez - vous 128 bits est suffisant :
- La Terre a environ 8,87e + 49 atomes , soit 2 ^ 166 atomes que nous avons .
- Supposons qu'il en coûte 2 ^ 20 atomes pour contenir un bit. Cela comprend également tout le câblage et les plastiques et l'alimentation qui va avec. Vous ne pouvez pas simplement jeter des transistors dans une boîte et l'appeler un ordinateur. Donc 2 ^ 20 semble plutôt optimiste.
Pour utiliser l'espace d'adressage de 128 bits, nous avons besoin de 2 ^ 133 bits, donc 2 ^ 152 atomes dont nous avons besoin . En supposant une distribution égale des atomes sur terre, voyons combien de croûte nous devons prendre pour les obtenir:
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
Vous avez donc 130 mètres à parcourir sur toute la surface (dont les 80% recouverts d'eau, de sable ou de glace). CA ne va pas arriver. Même en supposant que vous puissiez le déterrer (lol) et que toute cette matière puisse être transformée en puces, où obtiendrez-vous l'énergie?