Ecco una rottura:
* Falmato di calcolo: Il nucleo del programma prevede operazioni matematiche complesse, simulazioni, elaborazione dei dati o altri algoritmi che richiedono computazionalmente. Pensa a cose come:
* Simulazioni scientifiche (previsioni meteorologiche, dinamica molecolare)
* Formazione del modello di apprendimento automatico
* Operazioni crittografiche
* Elaborazione di immagini/video (in particolare ad alta risoluzione)
* Analisi dei dati che coinvolgono set di dati di grandi dimensioni
* I/O-Limited (contrasto): Al contrario, un programma legato all'I/O trascorre la maggior parte del tempo in attesa che le operazioni di I/O siano completate. Esempi includono:
* Server Web (in attesa di richieste)
* Applicazioni di database (in attesa di letture/scritture del disco)
* Programmi che si affidano fortemente alla comunicazione di rete
Caratteristiche chiave dei programmi legati al calcolo:
* Utilizzo elevato della CPU: Durante l'esecuzione, la CPU sarà utilizzata al 100%.
* Esecuzione lenta: Anche con un potente hardware, il programma richiederà molto tempo per completare a causa della complessità intrinseca dei calcoli.
* Migliorato con processori più veloci: Il tempo di esecuzione può essere significativamente ridotto utilizzando una CPU con velocità di clock più elevata, più core o migliori capacità di vettorializzazione. L'aggiunta di più RAM potrebbe anche aiutare se il set di lavoro del programma supera la memoria disponibile.
* Meno influenzato da I/O più veloce: L'upgrade a archiviazione più veloce o hardware di rete avrà un impatto relativamente minore sul tempo di esecuzione complessivo.
Identificare se un programma è legato al calcolo o legato all'I/O è importante per l'ottimizzazione delle prestazioni. Per i programmi legati al calcolo, l'attenzione dovrebbe essere sull'ottimizzazione degli algoritmi, sull'uso di tecniche di elaborazione parallele e sull'impiego potenzialmente hardware specializzato come le GPU. Per i programmi legati all'I/O, l'attenzione si sposterebbe nell'ottimizzazione delle query di database, utilizzando l'archiviazione più veloce e il miglioramento della comunicazione di rete.
Programmazione © www.354353.com