Utilità di pianificazione (runtime di concorrenza)

Gli argomenti in questa parte della documentazione vengono descritte le funzionalità principali dell'utilità di pianificazione del runtime di concorrenza.L'Utilità di pianificazione è utile quando si desidera ottimizzare le prestazioni del codice esistente che utilizza il runtime di concorrenza.

Nota importanteImportante

L'utilità di pianificazione non è disponibile in un'applicazione Windows Store.Per ulteriori informazioni, vedere Creazione di operazioni asincrone in C++ per le applicazioni Windows Store.

SuggerimentoSuggerimento

Il runtime di concorrenza fornisce un'utilità di pianificazione predefinita, pertanto non è necessario crearne una nell'applicazione.Poiché l'utilità di pianificazione consente di ottimizzare le prestazioni delle applicazioni, è consigliabile iniziare con la PPL (Parallel Patterns Library) o la Libreria di agenti asincroni se non si ha familiarità con il runtime di concorrenza.

L'Utilità di pianificazione pianifica e coordina le attività in fase di esecuzione.Per attività si intende un'unità di lavoro che esegue un processo specifico.Un'attività può in genere essere eseguita in parallelo con altre attività.Esempi di attività sono rappresentati dal lavoro eseguito dagli elementi del gruppo di attività, dagli algoritmi paralleli e dagli agenti asincroni.

L'Utilità di pianificazione gestisce i dettagli correlati alla pianificazione efficiente delle attività su computer che dispongono di più risorse di elaborazione.L'Utilità di pianificazione utilizza inoltre le funzionalità più recenti del sistema operativo sottostante.Pertanto, le applicazioni che utilizzano il runtime di concorrenza si adeguano automaticamente all'hardware migliorandolo con funzionalità più complete.

In Confronto tra runtime di concorrenza e altri modelli di concorrenza vengono descritte le differenze tra i meccanismi di pianificazione di tipo preemptive e cooperativa.L'Utilità di pianificazione utilizza la pianificazione cooperativa e un algoritmo di acquisizione del lavoro insieme all'utilità di pianificazione di tipo preemptive del sistema operativo per ottenere il massimo utilizzo delle risorse di elaborazione.

Il runtime di concorrenza fornisce un'utilità di pianificazione predefinita in modo da evitare di dover gestire i dettagli dell'infrastruttura.Pertanto, l'utilità di pianificazione non viene in genere utilizzata direttamente.Tuttavia, per soddisfare le esigenze di qualità dell'applicazione, è possibile utilizzare l'Utilità di pianificazione per fornire criteri di pianificazione personalizzati o associare utilità di pianificazione a specifiche attività.Si supponga ad esempio di avere una routine di ordinamento parallela che non possa essere utilizzata con più di quattro processori.È possibile utilizzare i criteri dell'utilità di pianificazione per creare un'utilità di pianificazione che generi non più di quattro attività simultanee.L'esecuzione della routine di ordinamento su questa utilità di pianificazione consente alle altre utilità di pianificazione attive di utilizzare tutte le risorse di elaborazione rimanenti.

Argomenti correlati

Titolo

Descrizione

Istanze dell'utilità di pianificazione

Vengono descritte le istanze dell'utilità di pianificazione e l'utilizzo delle classi concurrency::Scheduler e concurrency::CurrentScheduler per gestirle.Utilizzare le istanze dell'utilità di pianificazione quando si desidera associare i criteri di pianificazione espliciti a specifici tipi di carichi di lavoro.

Criteri dell'utilità di pianificazione

Viene descritto il ruolo dei criteri dell'utilità di pianificazione.Utilizzare i criteri dell'utilità di pianificazione per controllare la strategia utilizzata dall'utilità di pianificazione quando vengono gestite le attività.

Gruppi di pianificazione

Viene descritto il ruolo dei gruppi di pianificazione.Utilizzare i gruppi di pianificazione quando è necessario un livello di località alto tra le attività, ad esempio quando un gruppo di attività correlate trae vantaggio dall'esecuzione nello stesso nodo del processore.

Attività leggere

Viene descritto il ruolo delle attività leggere.Le attività leggere sono utili quando si adatta il codice esistente per utilizzare la funzionalità di pianificazione del runtime di concorrenza.

Contesti

Viene descritto il ruolo dei contesti, la funzione concurrency::wait e la classe concurrency::Context.Utilizzare queste funzionalità quando è necessario controllare le operazioni di blocco, sblocco e restituzione dei contesti e l'oversubscription nell'applicazione.

Funzioni di gestione della memoria

Vengono descritte le funzioni concurrency::Alloc e concurrency::Free.Queste funzioni consentono di migliorare le prestazioni di memoria allocando e liberando memoria in modo simultaneo.

Confronto tra runtime di concorrenza e altri modelli di concorrenza

Vengono descritte le differenze tra i meccanismi di pianificazione di tipo preemptive e cooperativa.

PPL (Parallel Patterns Library)

Viene descritto come utilizzare i vari modelli paralleli, ad esempio gli algoritmi paralleli, nelle applicazioni.

Libreria di agenti asincroni

Viene descritto come utilizzare gli agenti asincroni nelle applicazioni.

Runtime di concorrenza

Viene descritto il runtime di concorrenza che semplifica la programmazione parallela e vengono forniti i collegamenti ad argomenti correlati.