Pregunta

Estoy buscando una plataforma de computación distribuida que pueda incrustarse fácilmente en una aplicación.

I Investigaté MPI (y algunas de sus implementaciones), pero de lo que vi que implica crear un ejecutable para cada tarea y que se lanza utilizando mpirun.No lo excluyo, solo quiero que esté incrustado en una aplicación, no como un ejecutable externo (si es posible).

¿Ustedes, para que los usuarios sepan dicho marco (preferiblemente de código abierto)?Además, para contar mi mente, algunas muestras de uso serían agradables.

Estoy interesado en una solución de plataforma cruzada si es posible, ya que las estaciones en la LAN donde se debe implementar la solución es heterogénea.

Cualquier sugerencia y especialmente ejemplos de código son altamente apreciados.

¿Fue útil?

Solución

Cuatro sistemas vienen a la mente aparte de MPI: amqp, zeromq , cilk , y actores.

AMQP utiliza el paso del mensaje para comunicarse entre sistemas, utilizando un corredor de mensajes central para manejar / distribuir los mensajes. Algunas implementaciones de la entrega adecuada del receptor, pero son más lentas (similares a TCP). Algunas implementaciones están incendiadas y olvidan, rechazando la entrega garantida, pero son más rápidas (similares a UDP). Nota AMQP es un protocolo, no una implementación: las implementaciones populares incluyen activemq y rabbitmq .

zeromq es un poco similar a AMQP menos el intermediario de mensajes centrales. Es básicamente el estilo de los actores que creo, donde es más programático, le permite diseñar su sistema de una manera de extremo a extremo. Está descentralizado (ningún corredor de mensajes centrales) y los puntos de referencia parecen mostrar que es mucho más rápido que las implementaciones de AMQP.

No tengo mucha experiencia con cilk Aparte del hecho de que es un pozo Proyecto compatible de MIT que está diseñado para trabajar con C / C ++.

Los actores son una abstracción para ayudar con la concurrencia local / distribuida, popularizada por Erlang y más recientemente, la Akka proyecto (Scala, Java). Las versiones compatibles con C ++ que conozco son Theron, Actor-CPP y LIBCPPA, aunque no estoy seguro de cuál de los actores remotos de apoyo.

Otros consejos

Creo que hazelcast está en ese tipo de cosas;Computación distribuida incorporada.Pero está en Java, no C. Pero puedes llamar C desde Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top