Runtime de Simultaneidade
O Runtime de Simultaneidade para C++ ajuda você a escrever aplicativos paralelos robustos, escalonáveis e responsivos. Ele eleva o nível de abstração para que você não precise gerenciar os detalhes da infraestrutura relacionados à simultaneidade. Você também pode usá-lo para especificar políticas de agendamento que atendam às exigências de qualidade de serviço de seus aplicativos. Use esses recursos para ajudá-lo a começar a trabalhar com o Runtime de Simultaneidade.
Para a documentação de referência, confira Referência.
Dica
O Runtime de Simultaneidade depende muito dos recursos do C++11 e adota o estilo C++ mais moderno. Para saber mais, leia Bem-vindo(a) de volta ao C++.
Escolhendo Recursos do Runtime de Simultaneidade
Artigo | Descrição |
---|---|
Visão geral | Ensina por que o Runtime de Simultaneidade é importante e descreve seus principais recursos. |
Comparando com outros modelos de simultaneidade | Mostra como o Runtime de Simultaneidade se compara a outros modelos de simultaneidade, como o pool de threads do Windows e o OpenMP, para que você possa usar o modelo de simultaneidade que melhor atende aos requisitos do aplicativo. |
Migrando do OpenMP para o runtime de simultaneidade | Compara o OpenMP ao Runtime de Simultaneidade e dá exemplos sobre como migrar o código OpenMP para usar o Runtime de Simultaneidade. |
Biblioteca de padrões paralelos (PPL) | Apresenta você ao PPL, que fornece loops paralelos, tarefas e contêineres paralelos. |
Biblioteca de agentes assíncronos | Apresenta como usar agentes assíncronos e passar mensagens para incorporar facilmente as tarefas de fluxo de dados e pipeline em seus aplicativos. |
Agendador de Tarefas | Apresenta você ao Agendador de Tarefas, que permite ajustar o desempenho dos aplicativos da área de trabalho que usam o Runtime de Simultaneidade. |
Paralelismo da Tarefa na PPL
Artigo | Descrição |
---|---|
Paralelismo de tarefas Como usar parallel_invoke para escrever uma rotina de classificação em paralelo Como usar Parallel.Invoke para executar operações em paralelo Como criar uma tarefa que seja concluída após um atraso |
Descreve tarefas e grupos de tarefas, o que pode ajudá-lo a escrever código assíncrono e decompor o trabalho paralelo em partes menores. |
Instruções passo a passo: implementando futuros | Demonstra como combinar recursos do Runtime de Simultaneidade para fazer algo mais. |
Instruções passo a passo: removendo trabalho de um thread de interface de usuário | Mostra como mover o trabalho executado pelo thread da interface do usuário em um aplicativo MFC para um thread de trabalho. |
Práticas recomendadas na biblioteca de padrões paralelos Práticas recomendadas gerais no runtime de simultaneidade |
Fornece dicas e práticas recomendadas para trabalhar com o PPL. |
Paralelismo de Dados na PPL
Artigo | Descrição |
---|---|
Algoritmos paralelos Como escrever um loop parallel_for Como gravar um loop parallel_for_each Como realizar operações de mapa e redução em paralelo |
Descreve parallel_for , parallel_for_each e parallel_invoke outros algoritmos paralelos. Use algoritmos paralelos para resolver problemas paralelos de dados que envolvem coleções de dados. |
Contêineres e objetos em paralelo Como usar contêineres em paralelo para aumentar a eficiência Como usar combinável para melhorar o desempenho Como usar combinável para combinar conjuntos |
Descreve a classe combinable , bem como concurrent_vector , concurrent_queue e concurrent_unordered_map outros contêineres paralelos. Use contêineres e objetos paralelos quando você precisar de contêineres que deem acesso thread-safe aos seus elementos. |
Práticas recomendadas na biblioteca de padrões paralelos Práticas recomendadas gerais no runtime de simultaneidade |
Fornece dicas e práticas recomendadas para trabalhar com o PPL. |
Cancelando Tarefas e Algoritmos Paralelos
Artigo | Descrição |
---|---|
Cancelamento no PPL | Descreve a função de cancelamento no PPL, incluindo como iniciar e responder a solicitações de cancelamento. |
Como usar cancelamento para interromper um loop paralelo Como usar tratamento de exceções para interromper um loop paralelo |
Demonstra duas maneiras de cancelar o trabalho paralelo de dados. |
Aplicativos da Plataforma Universal do Windows
Artigo | Descrição |
---|---|
Criando operações assíncronas em C++ para aplicativos UWP | Descreve alguns dos principais pontos a serem considerados quando você usa o Runtime de Simultaneidade para produzir operações assíncronas em um aplicativo UWP. |
Instruções passo a passo: conexão usando tarefas e solicitações HTTP XML | Mostra como combinar tarefas PPL com as interfaces IXMLHTTPRequest2 e IXMLHTTPRequest2Callback para enviar solicitações HTTP GET e POST para um serviço Web em um aplicativo UWP. |
Exemplos de aplicativo do Windows Runtime | Contém exemplos de código para download e aplicativos de demonstração para Windows Runtime. |
Programação do Fluxo de Dados na Biblioteca de Agentes Assíncrona
Tratamento de Exceção e Depuração
Artigo | Descrição |
---|---|
Tratamento de exceção | Descreve como trabalhar com exceções no Runtime de Simultaneidade. |
Ferramentas de diagnóstico paralelo | Ensina como ajustar seus aplicativos e usar o Runtime de Simultaneidade de modo mais eficaz. |
Ajustando Desempenho
Artigo | Descrição |
---|---|
Ferramentas de diagnóstico paralelo | Ensina como ajustar seus aplicativos e usar o Runtime de Simultaneidade de modo mais eficaz. |
Instâncias de agendador Como gerenciar instâncias de agendador Políticas de agendador Como especificar políticas de agendador específicas Como criar agentes que usam políticas de agendador específicas |
Mostra como trabalhar com o gerenciamento de instâncias de agendador e políticas de agendador. Para aplicativos da área de trabalho, as políticas do agendador permitem associar regras específicas a tipos específicos de cargas de trabalho. Por exemplo, você pode criar uma instância de agendador para executar algumas tarefas em uma prioridade de thread com privilégios elevados e usar o agendador padrão para executar outras tarefas na prioridade de thread normal. |
Grupos Agendados Como usar grupos agendados para influenciar a ordem de execução |
Demonstra como usar grupos de agendamento para afinidades ou agrupar tarefas relacionadas. Por exemplo, você pode exigir um alto grau de localidade entre as tarefas relacionadas quando essas tarefas se beneficiam da execução no mesmo nó do processador. |
Tarefas leves | Explica como tarefas leves são úteis para criar trabalhos que não exigem balanceamento de carga ou cancelamento e como elas também são úteis para adaptar o código existente para uso com o Runtime de Simultaneidade. |
Contextos Como usar a classe de contexto para implementar um semáforo cooperativo Como usar excesso de assinatura para compensar a latência |
Descreve como controlar o comportamento dos threads gerenciados pelo Runtime de Simultaneidade. |
Funções de gerenciamento da memória Como usar Alloc e Free para melhorar o desempenho da memória |
Descreve as funções de gerenciamento de memória que o Runtime de Simultaneidade fornece para ajudá-lo a alocar e liberar memória de maneira simultânea. |
Recursos adicionais
Artigo | Descrição |
---|---|
Padrões e dicas de programação assíncrona no Hilo (aplicativos da Microsoft Store usando C++ e XAML) | Saiba como usamos o Runtime de Simultaneidade para implementar operações assíncronas no Hilo, um aplicativo Windows Runtime usando C++ e XAML. |
Programação paralela no blog de código nativo | Fornece artigos de blog detalhados adicionais sobre programação paralela no Runtime de Simultaneidade. |
Computação paralela no fórum C++ e Código Nativo | Permite que você participe de discussões da comunidade sobre o Runtime de Simultaneidade. |
Programação paralela | Ensina sobre o modelo de programação paralela disponível no .NET Framework. |