Runtime di concorrenza
Il runtime di concorrenza per C++ consente di scrivere applicazioni parallele affidabili, scalabili ed efficienti. Innalza il livello di astrazione in modo da evitare di dover gestire i dettagli dell'infrastruttura correlati alla concorrenza. È anche possibile usarlo per specificare i criteri di pianificazione che soddisfano le richieste di qualità del servizio delle applicazioni. Queste risorse permettono di iniziare a usare il runtime di concorrenza.
Per la documentazione di riferimento, vedere Informazioni di riferimento.
Suggerimento
Il runtime di concorrenza si basa fortemente sulle funzionalità C++11 e adotta lo stile C++ più moderno. Per altre informazioni, vedere Benvenuti in C++.
Scelta delle funzionalità del runtime di concorrenza
Articolo | Descrizione |
---|---|
Sintesi | Illustra i motivi che rendono importante il runtime di concorrenza e ne descrive le funzionalità essenziali. |
Confronto con altri modelli di concorrenza | Illustra il confronto tra il runtime di concorrenza ed altri modelli di concorrenza, ad esempio il pool di thread di Windows e OpenMP, in modo da poter sare il modello di concorrenza più adatto ai requisiti dell'applicazione. |
Migrazione da OpenMP al runtime di concorrenza | Confronta OpenMP e il Runtime di Concorrenza e fornisce esempi su come eseguire la migrazione del codice OpenMP esistente per l'uso del runtime di concorrenza. |
PPL (Parallel Patterns Library) | Presenta la libreria PPL, che fornisce i cicli, le attività e i contenitori paralleli. |
Libreria di agenti asincroni | Illustra come usare gli agenti asincroni e i passaggio dei messaggi per incorporare facilmente le attività di pipelining e il flusso di dati nelle applicazioni. |
Utilità di pianificazione | Presenta l'Utilità di Pianificazione, che consente di ottimizzare le prestazioni delle applicazioni desktop che usano il runtime di concorrenza. |
Parallelismo delle attività nella libreria PPL
Articolo | Descrizione |
---|---|
Parallelismo delle attività Procedura: Usare parallel_invoke per scrivere una routine di ordinamento in parallelo Procedura: Usare parallel_invoke per eseguire operazioni in parallelo Procedura: Creare un'attività che viene completata dopo un ritardo |
Illustra le attività e i gruppi di attività, che consentono di scrivere codice asincrono e scomporre il lavoro parallelo in sezioni più piccole. |
Procedura dettagliata: implementazione di future | Illustra come combinare le funzionalità del runtime di concorrenza per eseguire più operazioni. |
Procedura dettagliata: rimozione di lavoro da un thread dell'interfaccia utente | Illustra come spostare il lavoro eseguito dal thread della UI in un'applicazione MFC a un thread di lavoro. |
Procedure consigliate nella libreria PPL (Parallel Patterns Library) Procedure consigliate generali nel runtime di concorrenza |
Fornisce suggerimenti e procedure consigliate per lavorare con il PPL. |
Parallelismo dei dati nella libreria PPL
Articolo | Descrizione |
---|---|
Algoritmi paralleli Procedura: Scrivere un ciclo parallel_for Procedura: Scrivere un ciclo parallel_for_each Procedura: Eseguire operazioni di mapping e riduzione in parallelo |
Illustra parallel_for , parallel_for_each , parallel_invoke e altri algoritmi paralleli. Usare gli algoritmi paralleli per risolvere i problemi di tipo dati in parallelo che coinvolgono raccolte di dati. |
Contenitori e oggetti paralleli Procedura: Usare i contenitori paralleli per aumentare l'efficienza Procedura: Usare la classe combinable per migliorare le prestazioni Procedura: Usare l'oggetto combinable per combinare set |
Illustra la classe combinable , oltre a concurrent_vector , concurrent_queue , concurrent_unordered_map e altri contenitori paralleli. Usare i contenitori e gli oggetti paralleli quando sono necessari contenitori che consentono l'accesso thread-safe ai relativi elementi. |
Procedure consigliate nella libreria PPL (Parallel Patterns Library) Procedure consigliate generali nel runtime di concorrenza |
Fornisce suggerimenti e procedure consigliate per lavorare con il PPL. |
Annullamento di attività e algoritmi paralleli
Articolo | Descrizione |
---|---|
Annullamento nella libreria PPL | Descrive il ruolo dell'annullamento nella libreria PPL, ad esempio come avviare e rispondere alle richieste di annullamento. |
Procedura: Usare l'annullamento per interrompere un ciclo Parallel Procedura: Usare la gestione delle eccezion per interrompere un ciclo Parallel |
Illustra due modi per annullare un lavoro con dati in parallelo. |
App della piattaforma UWP (Universal Windows Platform)
Articolo | Descrizione |
---|---|
Creazione di operazioni asincrone in C++ per app UWP | Descrive alcuni dei punti chiave da tenere presenti quando si usa il runtime di concorrenza per produrre operazioni asincrone in un'app UWP. |
Procedura dettagliata: connessione tramite attività e richieste HTTP XML | Illustra come combinare le attività PPL con le IXMLHTTPRequest2 interfacce e IXMLHTTPRequest2Callback per inviare richieste HTTP GET e POST a un servizio Web in un'app UWP. |
Esempi di app di Windows Runtime | Contiene esempi di codice scaricabili e app demo per Windows Runtime. |
Programmazione del flusso di dati nella libreria di agenti asincroni
Gestione e debug delle eccezioni
Articolo | Descrizione |
---|---|
Gestione delle eccezioni | Illustra come gestire le eccezioni nel runtime di concorrenza. |
Strumenti di diagnostica in parallelo | Illustra come ottimizzare le applicazioni e usare il più efficacemente possibile il runtime di concorrenza. |
Ottimizzazione delle prestazioni
Articolo | Descrizione |
---|---|
Strumenti di diagnostica in parallelo | Illustra come ottimizzare le applicazioni e usare il più efficacemente possibile il runtime di concorrenza. |
Istanze dell'utilità di pianificazione Procedura: Gestire un'istanza dell'utilità di pianificazione Criteri dell'utilità di pianificazione Procedura: Definire criteri dell'utilità di pianificazione specifici Procedura: Creare agenti che usano criteri dell'utilità di pianificazione specifici |
Illustra come usare la gestione delle istanze dell'utilità di pianificazione e i criteri dell'utilità di pianificazione. Per le app desktop, i criteri dell'utilità di pianificazione consentono di associare regole specifiche a specifici tipi di carichi di lavoro. È possibile ad esempio creare un'istanza dell'utilità di pianificazione per eseguire alcune attività con una priorità di thread elevata e usare l'utilità di pianificazione predefinita per eseguire altre attività con una priorità di thread normale. |
Gruppi di pianificazione Procedura: Usare i gruppi di pianificazione per influenzare l'ordine di esecuzione |
Illustra come usare i gruppi di pianificazione per creare affinità o raggruppare insieme le attività correlate. È ad esempio possibile che sia necessario un livello elevato di località tra le attività correlate, quando queste attività traggono vantaggio dall'esecuzione nello stesso nodo del processore. |
Attività leggere | Illustra i vantaggi offerti dalle attività leggere nel creare il lavoro che non richiede il bilanciamento del carico o l'annullamento e nell'adattare il codice esistente per l'uso con il runtime di concorrenza. |
Contesti Procedura: Usare la classe Context per implementare una classe semaforo di cooperazione Procedura: Usare l'oversubscription per compensare la latenza |
Illustra come controllare il comportamento dei thread gestiti dal runtime di concorrenza. |
Funzioni di gestione della memoria Procedura: Usare Alloc e Free per migliorare le prestazioni di memoria |
Illustra le funzioni di gestione della memoria offerte dal runtime di concorrenza che consentono di allocare e liberare memoria in modo simultaneo. |
Risorse aggiuntive
Articolo | Descrizione |
---|---|
Modelli di programmazione asincrona e suggerimenti in Hilo (app di Windows Store scritte in C++ e XAML) | Informazioni su come è stato usato il runtime di concorrenza per implementare operazioni asincrone in Hilo, un'app di Windows Runtime con C++ e XAML. |
Blog relativo alla programmazione parallela in codice nativo | Fornisce altri articoli dettagliati del blog sulla programmazione in parallelo nel runtime di concorrenza. |
Forum relativo all'elaborazione parallela in C++ e codice nativo | Consente di partecipare alle discussioni della community sul runtime di concorrenza. |
Programmazione parallela | Illustra il modello di programmazione parallela disponibile in .NET Framework. |