Ridimensionamento forte:
* Obiettivo: Ridurre il tempo di soluzione per una dimensione del problema * fissa * aumentando il numero di processori. Il problema rimane lo stesso.
* Scenario: Hai un problema specifico che vuoi risolvere il più rapidamente possibile. Metti più risorse (processori), sperando di ridurre drasticamente il tempo di esecuzione.
* Efficienza: La forte efficienza di ridimensionamento viene misurata da quanto diminuisce il tempo di esecuzione man mano che si aumenta il numero di processori. Idealmente, raddoppiando i processori dimezzerebbe il tempo di esecuzione. Tuttavia, questo raramente accade perfettamente.
* Formula: `Efficienza =(SpeedUp) / (Numero di processori)`
* `SpeedUp =(Tempo di esecuzione su 1 processore) / (tempo di esecuzione su n processori)`
* Un'efficienza di 1 (o 100%) è un forte ridimensionamento.
* Limitazioni: Il forte ridimensionamento ha limiti intrinseci. Man mano che aggiungi più processori, il lavoro deve svolgere ogni processore diventa sempre più piccolo. Alla fine, il sovraccarico della comunicazione, della sincronizzazione e del tempo inattivo (i processori in attesa di altri) travolge i benefici della parallelizzazione. Raggiungi un punto in cui l'aggiunta di più processori effettivamente * aumenta * il tempo di esecuzione. Ciò è dovuto alla legge di Amdahl, in cui si afferma che lo speedup di un programma è limitato dalla proporzione del programma che è intrinsecamente sequenziale (non può essere parallelizzato).
* Impatto sulle prestazioni:
* positivo (inizialmente): Tempo di esecuzione ridotto per la stessa dimensione del problema.
* negativo (eventualmente): I ritorni in diminuzione mentre domina le spese generali di comunicazione. Può anche aumentare il tempo di esecuzione oltre un certo numero di processori. I colli di bottiglia nelle risorse condivise (ad es. Bus di memoria) diventano più importanti.
ridimensionamento debole:
* Obiettivo: Mantenere un tempo di esecuzione * costante * aumentando sia la dimensione del problema * che * il numero di processori in modo proporzionale. Ogni processore gestisce idealmente la stessa quantità di lavoro.
* Scenario: Hai un problema che vuoi risolvere a un livello di prestazione specifico e vuoi risolvere versioni sempre più grandi di quel problema mantenendo tali prestazioni. Aggiungi processori e aumenti le dimensioni del problema di conseguenza.
* Efficienza: La debole efficienza di ridimensionamento viene misurata dal modo in cui il tempo di esecuzione rimane costante man mano che si aumenta il numero di processori e la dimensione del problema. Se il tempo di esecuzione rimane costante, hai un ridimensionamento debole perfetto.
* Formula: `Efficienza =(tempo di esecuzione per n processori e problema in scala) / (tempo di esecuzione per 1 processore e problema di base)`
* Un'efficienza di 1 (o 100%) indica un perfetto ridimensionamento debole (tempo di esecuzione costante). Più praticamente, misuri quanto vicino a 1 l'efficienza rimane mentre ridimensiona il problema.
* Vantaggi: Il ridimensionamento debole è spesso più facile da raggiungere rispetto al forte ridimensionamento, specialmente per problemi molto grandi. Poiché la quantità di lavoro per processore rimane relativamente costante, le spese generali di comunicazione e sincronizzazione non diventano dominanti. È particolarmente utile per i problemi in cui si desidera esplorare uno spazio di parametri più ampio o simulare un sistema più ampio in un tempo fisso.
* Limitazioni: Il ridimensionamento debole ha senso solo se il problema può essere ridimensionato in modo appropriato. Alcuni problemi hanno limiti intrinseci sulle loro dimensioni o complessità.
* Impatto sulle prestazioni:
* Positivo: Ti consente di risolvere problemi molto più grandi in un ragionevole periodo di tempo senza un aumento significativo del tempo di esecuzione. Dimostra la scalabilità dell'algoritmo e del sistema paralleli.
* negativo: Non riduce il tempo per risolvere un problema risolto * specifico *. L'efficienza potrebbe degradarsi man mano che il problema e il conteggio dei processori aumentano a causa dei costi di comunicazione che alla fine diventano significativi.
In sintesi:
| Caratteristica | Strumento di ridimensionamento | Ridimensionamento debole |
| ---------------- | -------------------------------------------------------- | ----------------------------------------------------------
| Dimensione del problema | Risolto | Aumenta proporzionalmente con il numero di processori |
| Obiettivo | Ridurre i tempi di esecuzione per un problema fisso | Mantenere tempo di esecuzione costanti per problemi ridimensionati |
| Focus | SpeedUp per un determinato compito | Scalabilità del sistema e algoritmo |
| Domanda chiave | Quanto più veloce posso risolvere questo problema? | Quanto è grande un problema che posso risolvere in un determinato momento? |
| Efficienza | Diminuisce all'aumentare delle spese generali di comunicazione | Rimane relativamente costante se il ridimensionamento è efficiente |
| Legge di Amdahl | Vincolo significativo | Meno di un vincolo |
Esempio:
* Strumento di ridimensionamento: Simulando il tempo per una città specifica per le prossime 24 ore. Vuoi ottenere le previsioni più accurate il più rapidamente possibile. Aumenta il numero di processori per accelerare il calcolo.
* ridimensionamento debole: Simulando il tempo per una regione. Si desidera simulare il tempo su un'area geografica sempre più grande mantenendo una risoluzione specifica e un tempo di simulazione. Aggiungi più processori all'aumentare della dimensione della regione.
In pratica, sia il ridimensionamento forte che quello debole sono considerazioni importanti quando si progettano e valutano algoritmi e sistemi paralleli. La scelta di cui concentrarsi dipende dal problema specifico e dagli obiettivi di prestazione desiderati.
hardware © www.354353.com