Pergunta

Eu estou olhando para uma plataforma de computação distribuída que pode ser facilmente incorporado a um aplicativo.

Eu investigado MPI (e algumas de suas implementações) mas pelo que vi trata-se de criar um executável para cada tarefa e que é lançado usando mpirun.Eu não excluí-lo, eu só quero que ele seja incorporado em um aplicativo, não como um executável externo (se possível).

Você, de MODO que os usuários, saber de um tal quadro (de preferência de fonte aberta)?Também, na minha mente alguns exemplos de uso seria bom.

Eu estou interessado em uma solução de plataforma cruzada, se possível, como as estações na rede local onde a solução está a ser implantado é heterogêneo.

Todas as sugestões e, especialmente, exemplos de código são altamente apreciados.

Foi útil?

Solução

Quatro sistemas vêm à mente além do IPM:AMQP, ZeroMQ, Cilk, e Atores.

AMQP usa a mensagem que passa para a comunicação entre sistemas, utilizando uma central message broker para lidar/distribuir as mensagens.Algumas implementações garanto a entrega adequada para o receptor, mas são mais lentos (similar ao TCP).Algumas implementações do fogo, e se esqueça, impedindo a entrada garantida a entrega, mas são mais rápidas (similar ao UDP).Nota AMQP é um protocolo, não uma implementação popular implementações incluem ActiveMQ e RabbitMQ.

ZeroMQ é um pouco parecido com AMQP menos o central message broker.É basicamente Atores estilo que eu acredito, onde é mais programático, permitir que você crie seu sistema em um fim-a-fim maneira.É descentralizada (não central message broker) e valores de referência parecem mostrar que é muito mais rápido do que AMQP implementações.

Eu não tenho muita experiência com Cilk além do fato de que trata-se de um projecto apoiado pelo MIT, que é projetado para trabalhar com C/C++.

Atores são uma abstração para ajudar com local/distribuído simultaneidade, popularizado por Erlang e, mais recentemente, o Akka projeto (Scala, Java).C++ versões compatíveis que eu conheço são Theron, o Ator-CPP, e libcppa, embora eu não tenho certeza de qual desses suporte remoto atores.

Outras dicas

Eu acho Hazelcast é ecatly esse tipo de coisa;embedable de computação distribuída.Mas é em java, c nãoMas pode chamar de C a partir do Java.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top