Question

Je recherche une plateforme informatique distribuée qui peut être facilement intégrée dans une application.

J'ai étudié MPI (et certaines de ses implémentations) mais d'après ce que j'ai vu, cela implique de créer un exécutable pour chaque tâche et qui est lancé en utilisant mpirun.Je ne l'exclus pas, je veux juste qu'il soit intégré dans une application, pas comme un exécutable externe (si possible).

Est-ce que vous, utilisateurs SO, connaissez un tel framework (de préférence open-source) ?De plus, afin de me décider, quelques exemples d'utilisation seraient bien.

Je suis intéressé par une solution multiplateforme si possible, car les stations du LAN où la solution doit être déployée sont hétérogènes.

Toutes les suggestions et surtout les exemples de code sont très appréciés.

Était-ce utile?

La solution

Quatre systèmes me viennent à l’esprit en dehors de MPI :AMQP, ZéroMQ, Cil, et Acteurs.

AMQP utilise la transmission de messages pour communiquer entre les systèmes, en utilisant un courtier de messages central pour gérer/distribuer les messages.Certaines implémentations garantissent une livraison correcte au destinataire mais sont plus lentes (similaires à TCP).Certaines implémentations sont « Fire and Forget », interdisant la livraison garantie, mais sont plus rapides (similaires à UDP).Remarque AMQP est un protocole et non une implémentation. Les implémentations populaires incluent ActiveMQ et LapinMQ.

ZéroMQ est un peu similaire à AMQP sans le courtier de messages central.Il s'agit essentiellement du style Actors, je crois, où il est plus programmatique, vous permettant de concevoir votre système de bout en bout.Il est décentralisé (pas de courtier de messages central) et les tests semblent montrer qu'il est beaucoup plus rapide que les implémentations AMQP.

Je n'ai pas beaucoup d'expérience avec Cil à part le fait qu'il s'agit d'un projet bien pris en charge par le MIT et conçu pour fonctionner avec C/C++.

Les acteurs sont une abstraction pour aider à la fois à la concurrence locale/distribuée, popularisée par Erlang et plus récemment, le Akka projet (Scala, Java).Les versions compatibles C++ que je connais sont Theron, Actor-CPP et libcppa, même si je ne sais pas laquelle d'entre elles prend en charge les acteurs distants.

Autres conseils

Je pense Noisettecast c'est vraiment ce genre de chose ;informatique distribuée intégrable.Mais c'est en Java, pas en C.Mais vous pouvez appeler C depuis Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top