Quais são as melhores opções atuais para paralelização de um aplicativo .NET-intensivo da CPU?

votos
17

Esta é uma questão em aberto. Que abordagens devo considerar?

Publicado 04/08/2008 em 17:30
fonte usuário
Em outras línguas...                            


5 respostas

votos
8

Seu primeiro passo é encontrar e compreender o paralelismo em seu problema. É realmente fácil de escrever código multi-threaded que executa melhor do que o código single-threaded que substitui. "Padrões para Programação Paralela" (Amazônia) é uma ótima introdução aos conceitos-chave.

Uma vez que você tem um projeto viável, começar a ler os artigos no tópico "Concorrência" no arquivos MSDN Magazine (link) , particularmente qualquer coisa escrita por Jeff Richter. Aqueles lhe dará o porcas e parafusos coisas sobre as construções de segmentação específicas para Windows e .NET. (A seção multi-threading em "CLR de Richter via C # (Amazon) é curto, mas muito perspicaz - altamente recomendado.)

Respondeu 30/08/2008 em 23:32
fonte usuário

votos
6

Existem algumas extensões paralelas para .NET que estão atualmente em testes e disponível no Microsoft Paralelo Centro de Computação desenvolvedor . Eles têm alguns itens interessantes que você esperaria como foreach Paralela e uma versão paralela de LINQ chamado PLINQ. Alguns dos melhores informações sobre as extensões está no Channel 9 .

Respondeu 04/08/2008 em 17:41
fonte usuário

votos
2

@Larsenal

Se você quiser se ramificam fora do .NET tem havido muita discussão sobre da Intel Threading Building Blocks que é uma biblioteca paralela para C ++.

Respondeu 04/08/2008 em 18:41
fonte usuário

votos
2

Acho que também poderia incluir abordagens não-específicas do .NET para processamento paralelo se aqueles estão entre as melhores opções a considerar.

Respondeu 04/08/2008 em 18:32
fonte usuário

votos
0

Há muitas opções ea melhor solução dependerá da natureza do problema que você está tentando resolver. Se você está tentando resolver um embarassingly paralelo problema, então, dividir e parallelising as tarefas será trivial. Nesse caso, o desafio virá na distribuição e gestão dos dados utilizados.

Algumas sugestões seria:

Respondeu 30/08/2008 em 23:46
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more