Estrutura de computação distribuída (.NET) - especificamente para operações intensivas da CPU [fechado
-
20-09-2019 - |
Pergunta
Atualmente, estou pesquisando as opções disponíveis (de código aberto e comercial) para o desenvolvimento de um aplicativo distribuído.
"Um sistema distribuído consiste em vários computadores autônomos que se comunicam através de uma rede de computadores". Wikipedia
O aplicativo está focado em distribuir muito CPU intensivo As operações (em oposição aos dados intensivos), por isso, tenho certeza de que as soluções do MapReduce não se encaixam na conta.
Qualquer estrutura que você possa recomendar ( + dê um breve resumo de qualquer experiência ou comparação com outras estruturas) seria muito apreciado.
Solução
MPAPI Framework - http://www.codeplex.com/mpapi
Meus pensamentos
- Parece ser uma das soluções mais simples.
- Não vejo evidências de apoio ao failover.
- É de código aberto =] e é mono compatível com yay!
- Usa a estrutura "remotingLite" henses da compatibilidade mono.
- A gravação de aplicativos de computadores únicos ou de computadores múltiplos (cluster) são igualmente simples.
- A filosofia do desenvolvedor é "o desempenho é fundamental". Portanto, é seguro dizer que ele otimizou.
- Estrutura continuamente atualizada.
Outras dicas
Eu era um dos principais desenvolvedores da Alchemi. Tivemos que mudar o curso são iniciados e o resultado é a plataforma Utilify. Conceitualmente semelhante ao Alchemi, a plataforma Utilify se baseia nas lições aprendidas da Alchemi e fornece um modelo de programação mais flexível para criar aplicativos .NET distribuídos em uma rede do Windows.
Visite www.utilify.com para obter mais informações. Atualmente, existe uma versão beta gratuita disponível para download.
Atenciosamente, Krishna.
Appistry Cloudiq Platform http://www.appistry.com
- Fará centenas de máquinas aparecerem como um recurso de computação.
- Atualmente usado na produção em FedEx Para executar algoritmos de roteamento
- Permite que você escreva aplicativos em C, C ++, Java e .Net
- Nenhum ponto único de falha
- Recuperar/tentar novamente de tarefas com falha de tarefas
Alchemi ".NET Grid Computing Framework"
http://www.gridbus.org/~alchemi/publications.html
http://sourceforge.net/projects/alchemi/files/
O Alchemi é uma estrutura de computação da grade .NET que permite agregar sem dor o poder de computação das máquinas conectadas à intranet e da Internet em um supercomputador virtual (grade computacional) e para desenvolver aplicativos para executar na grade.
Notas rápidas:
- Parou de ser atualizado em 2007 versão 1.0.6 (.NET 2.0).
- Bem documentado formalmente feito isso.
- Usa XML para definir trabalhos. (Foi toda a raiva em 2007 usar XML para tudo)
- Relativamente complexo em comparação com o MPAPI, mas não considere isso um grande negativo.
- Levaria um bom tempo para se atualizar.
- É de código aberto =).
- É extensível e pode ser usado em conjunto com outras tecnologias de cluster por meio de um corretor Gridbus (http://www.gridbus.org)
- Parece amplamente utilizado (veja publicações http://www.gridbus.org/~alchemi/publications.html) =)
Grade do azul - http://azuregrid.codeplex.com/
- Edição comunitária da estrutura de computação da grade neudesica (http://www.neudesic.com/insight/publications/pages/pub20090428.aspx)
- Inclui uma GUI para iniciar e monitorar corridas de emprego.
- Parte 1: Um padrão de design para computação de grade no Azure.
- Parte 2: codificando uma aplicação de grade do Azure.
- Parte 3: Executando um aplicativo do Azure Grid.
Dryadlinq é um projeto de pesquisa da Microsoft para permitir que as consultas do LINQ sejam distribuídas entre vários computadores, em vez de apenas vários núcleos como o paralelo LINQ.
AWS SDK para .NET - http://aws.amazon.com/sdkfornet/
Eu acho que essa oferta de nuvem e a API .NET também podem se encaixar na conta. Amazon oferece máquinas de alto desempenho (Veja a lista de preços) que permitiriam a delegação uma execução de operações intensivas em CPU em larga escala.
NGrid - http://ngrid.sourceforge.net/
Visão geral
O NGRID é uma estrutura de computação de grade de código aberto (LGPL) escrito em C#.
- Plataforma independente através do projeto mono.
- Um modelo de programação multithread transparente para programação de grade.
- Uma estrutura de grade física e algumas implementações de grade.
- Utilitários comuns para programação de grade ou implementações de grade.
- Última atualização de maio de 2008