Olá pessoal. Tudo certo!? TPL apresenta alternativas interessantes para que possamos melhorar a performance de nossos aplicativos. Reconhecendo algoritmos que podem ser executados paralelamente e, além disso, escolhendo a melhor alternativa de execução, podemos melhorar muito a responsividade de nossos sistemas. No post de hoje, apresento um cenário, muito trivial, inspirado em exemplos do livro… [Leia mais…]
Olá pessoal. Tudo certo?! No post de hoje, mostro como implementar o famoso “Quicksort” com suporte a paralelismo. Não vou explicar o Quicksort propriamente dito (acho que isso já foi feito milhares de vezes, por gente melhor do que eu). Vou apenas mostrar como escrever o algorítimo usando paralelismo do .net. O código completo está… [Leia mais…]
Olá pessoal. Tudo certo?! No último post, mostrei como programação assíncrona ficou mais fácil (e natural) a partir do Async CTP (que antecipa muitas funcionalidades interessantes do C# 5.0). Nesse post, apresento mais uma série de possibilidades com essa tecnologia. Retornando valores No post anterior, mostrei como implementar uma consulta a Web, retornando a coleção… [Leia mais…]
Olá pessoal. Tudo certo?! Este é meu primeiro post técnico em 2012. Também é o primeiro post técnico depois de ser reconhecido como MVP em C#. No post de hoje, vou apresentar algumas alternativas para parallel programming. Começo com um exemplo simples e vou evoluindo até demonstrar (basicamente) o uso das palavras chaves async e… [Leia mais…]
Olá pessoal, tudo certo? No post de hoje, mostro como utilizar a Task Parallel Library para implementar o Parallel Pipeline Pattern. Se desejar, há mais posts sobre paralelismo com .net. Um pouco mais sobre o “Parallel Pipeline Pattern” Basicamente, nesse pattern, implementamos uma “Pipeline”, onde cada etapa é executada de forma paralela. Para isso, são… [Leia mais…]
Olá pessoal, tudo certo? No post de hoje mostro como usar paralelismo em sequências de métodos síncronos. O problema Considere o seguinte código: Nesse código, Func1, Func2, Func3, Func4 simulam métodos com processamento intensivo e sem concorrência no acesso a dados. Todos, na prática, consomem aproximadamente 2 segundos para completar execução. Executando esse código, temos:… [Leia mais…]
Olá pessoal, tudo certo?! No post de hoje, demonstro como executar Parallel Aggregation utilizando Parallel Loops. Importante destacar que essa abordagem é significativamente mais complexa do que aquela que demonstrei outro dia usando PLINQ. Se você gosta do assunto, considere ler o que já escrevi sobre paralelismo. Solução apenas com Parallel Loops (sem PLINQ) Observe… [Leia mais…]
Olá pessoal, como estamos? No post de hoje, demonstro como executar Parallel Agregation usando PLINQ. Problema A maioria dos exemplos que encontramos para paralelismo demonstra como executar diversas tarefas independentes de forma paralela. Entretanto, há uma grande diversidade de cenários onde as tarefas não podem ser executadas de forma plenamente independente. Considere, por exemplo, um… [Leia mais…]
Olá pessoal, tudo certo? No post de hoje, mostro como utilizar a classe Task. Saber como essa classe funciona é fundamental para a compreensão dos novos recursos para paralelismo do C# 5 (async e await). Ponto de partida Para mostrar o potencial de Task, comecemos demonstrando um método com “processamento intensivo”. Observe: Tudo que fazemos… [Leia mais…]
Olá pessoal, tudo certo? Ontem apresentei alguns fundamentos de Parallel Programming. Hoje pretendo falar um pouco sobre como calcular os ganhos de performance que essa prática pode proporcionar. Parallel Programming vale a pena? Odeio usar a mesma resposta de sempre, mas aqui ela cabe perfeitamente… A resposta é depende! Parallel Programming não é fácil. Implica,… [Leia mais…]
Olá pessoal, tudo certo? Depois de escrever dois posts consecutivos sobre internals do Azure (um sobre o Hypervisor e outro sobre o Fabric), resolvi olhar para o lado . Vou escrever um pouco sobre paralelismo. Pessoalmente, vejo muita relação entre Azure e Paralelismo. Pois, quando penso em Azure, penso: em aplicações com alta disponibilidade, como serviços… [Leia mais…]
Olá pessoal, tudo certin? Depois de uma semana de muito pouca atividade por aqui (TechEd tomou todo o meu tempo), eis que surge mais um “postzinho” técnico. Tema de hoje: Paralelismo e operações de I/O. Se você não “manja” muito do assunto, talvez queira ver um outro post meu: “Como Parallel Linq (PLINQ) funciona?” Importante… [Leia mais…]
Olá galera, tudo certin? Em um sábado chuvoso em Caxias do Sul, ansioso para iniciar minha jornada rumo ao TechEd (na distante São Paulo [uma horinha e meia de vôo]), escrevo mais um “postizinho”! Que assunto abordo hoje? PLINQ. Importante dizer que este não é, exatamente, um post com material introdutório sobre o assunto. Presumo… [Leia mais…]
março 14, 2012
3