limite inferiore sulla memoria ad accesso casuale?


8

Ecco una domanda forse ingenua che mi ha pizzicato: c'è un Ω(n3)limite inferiore asintotico per indirizzare in modo casuale una memoria arbitrariamente grande? La mia causa di convinzione è che il percorso più breve verso qualsiasi memoria immagazzinata fisicamente deve essere attraverso lo spazio tridimensionale e la diagonale qui deve avere una lunghezza minima.

Ad esempio, quando si ordinano arbitrariamente molti elementi, l'indirizzamento di questi elementi deve eventualmente costare qualcosa di proporzionale alla distanza e anche se si dispone di un cavo ad alta velocità tra ogni singolo punto in uno spazio, sembra che ci sia un limite geometrico limitato a superiore a Ω(nlgn).

Cosa c'è di sbagliato nel mio argomento?

Risposte:


6

Se stai parlando di latenza, sì, mi sembra giusto. Un limite inferiore sulla distanza implica un limite inferiore sulla latenza, a causa di considerazioni sulla velocità della luce. Tuttavia, in pratica queste considerazioni sulla velocità della luce probabilmente non dominano fino a quando la quantità di memoria non è estremamente grande.

A proposito, la situazione è diversa se parliamo di larghezza di banda (cioè il numero di operazioni di memoria ad accesso casuale eseguite al secondo), piuttosto che di latenza. È possibile elaborare contemporaneamente molte operazioni di memoria ad accesso casuale, utilizzando le reti di ordinamento.

Un avvertimento importante è che sembra che tu stia assumendo un'architettura in cui abbiamo una grande CPU a sinistra e una grande memoria a destra, e sono separate in qualche modo. Tuttavia, questo non è necessariamente l'unico modo per strutturare un calcolo. Si può anche strutturare un calcolo, ad esempio, come un calcolo parallelo, in cui si ha una mesh 2-D o 3-D di piccoli processori ciascuno con la propria memoria di lavoro locale. Ora accedere alla memoria locale può essere molto veloce, mentre l'accesso alla memoria lontana è lento. In un certo senso c'è ancora an o n3 rilegato operativo, ma il n è molto più piccolo per la memoria locale che per la memoria lontana, quindi se il tuo algoritmo è progettato in modo da garantire che la maggior parte delle operazioni di memoria siano nella memoria locale, potresti essere in grado di "battere" il limite inferiore che hai descritto (in alcuni senso).

Nell'architettura del computer, si misura spesso le prestazioni di un circuito da parte di AT misura: in altre parole, l'area del circuito (A) moltiplicato per il tempo impiegato dal circuito per completare un calcolo (T). Se lo desideri, puoi pensare a questo come a un rapporto prezzo-prestazioni: è il prezzo (che si presume sia proporzionale all'area del circuito) diviso per le prestazioni (il numero di calcoli che possono essere eseguiti per secondo, cioè l'inverso diT). Un'architettura standard con una singola CPU robusta e una grande memoria non è sempre l'architettura ottimale. A volte puoi ottenere grandi accelerazioni (più che un fattore costante) usando il calcolo parallelo o altre architetture. Questo è almeno in parte dovuto esattamente al problema che hai citato: è molto più veloce accedere alla memoria che ti è vicina piuttosto che accedere alla memoria che è lontana. Anche la memorizzazione nella cache (ad es. Cache L1, cache L2, ecc.) Si basa sullo stesso principio.

Di seguito è riportato un esempio di un articolo nel mondo della crittografia che considera la progettazione di circuiti per scopi speciali per compiti crittografici e tiene conto di questi problemi. Ad esempio, ha un sacco di processori, una grande memoria e una rete di ordinamento tra i due per indirizzare gli accessi alla memoria dai processori alla memoria. Ciò consente a un numero elevato di operazioni di memoria di essere "in volo" contemporaneamente, anche se non elimina la latenza.


Se vuoi approfondire ulteriormente questa linea di pensiero, c'è un dibattito interessante (ma per lo più teorico) che si può avere se la metrica giusta sia l'area o il volume, cioè se il limite inferiore destro è n o n3. Sì, il mondo è tridimensionale, ma la dissipazione del calore è bidimensionale; un enorme cubo di computer sarebbe limitato dalla sua capacità di dissipare il calore, che si ridimensiona con la sua superficie, non con il suo volume. Si può continuare in questa direzione. Se questo sembra un argomento affascinante, vedi Q.9 (pagg. 45-46) del seguente documento:


Molte grazie! Ciò ha aggiunto più prospettiva di quanto avessi immaginato. :)
Simon Shine,

2

Vedi i limiti inferiori correlati per il calcolo (e la memoria, che può essere vista come una forma di calcolo) sensibile alla velocità di comunicazione limitata, ai limiti inferiori sulla dimensione dell'unità e alla dimensione spaziale fissa.

David C. Fisher: i tuoi algoritmi paralleli preferiti potrebbero non essere veloci come pensi. IEEE Trans. Computers 37 (2): 211-213 (1988)

In particolare, in dimensione d, ottieni un limite inferiore di Nd+1, quindi la radice cubica si presenta per la dimensione due - appropriata per la maggior parte dei chip di semiconduttori oggi. Fai attenzione al cubo DRAM di Micron!


2

Anche il limite teorico asintotico è O(n)se vogliamo evitare che il computer collassi in un buco nero .

Ovviamente questa limitazione viene eliminata se scopriamo wormhole, nel qual caso possiamo far funzionare il nostro computer anche in un universo tascabile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.