Domanda

Sto cercando una piattaforma di calcolo distribuita che può essere facilmente incorporata in un'applicazione.

Ho studiato MPI (e alcune delle sue implementazioni) ma da ciò che ho visto implica la creazione di un eseguibile per ogni attività e che viene lanciato utilizzando mpirun.Non lo escluderò, voglio solo che sia incorporato in un'applicazione, non come eseguibile esterno (se possibile).

Tu, quindi utenti, conosci un quadro del genere (preferibilmente open-source)?Inoltre, per decidermi alcuni campioni di utilizzo sarebbero gentili.

Sono interessato a una soluzione a piattaforma trasversale, se possibile, come le stazioni della LAN dove la soluzione deve essere schierata è eterogenea.

Qualsiasi suggerimento e in particolare gli esempi di codice sono molto apprezzati.

È stato utile?

Soluzione

Quattro sistemi vengono in mente a parte MPI: Amqp, Zeromq , cilk e attori.

AMQP utilizza il messaggio che passa per comunicare tra i sistemi, utilizzando un broker di messaggi centrali per gestire / distribuire i messaggi. Alcune implementazioni garantiscono una consegna corretta al ricevitore ma sono più lente (simili a TCP). Alcune implementazioni sono incendi e dimenticano, non consentire la consegna garantita, ma sono più veloci (simili a UDP). Nota AmQP è un protocollo, non un'implementazione - implementazioni popolari includono activemq e rabbitmq .

Zeromq è un po 'simile a Amqp meno il broker dei messaggi centrali. È fondamentalmente lo stile attori credo, dove è più programmatico, ti consente di progettare il tuo sistema in modo end-to-end. È decentralizzato (nessun broker di messaggi centrali) e i benchmark sembrano dimostrare che è molto più veloce delle implementazioni AMQP.

Non ho molta esperienza con cilk diversa dal fatto che è un pozzo Progetto supportato da MIT che è progettato per funzionare con C / C ++.

Gli attori sono un'astrazione per aiutare con entrambe le concorrenze locali / distribuite, ha reso popolare da Erlang e più recentemente, il Akka progetto (Scala, Java). Le versioni compatibili con C ++ che conosco sono Theron, Actor-CPP e libcppa, anche se non sono sicuro di quale di quei supportano attori remoti.

Altri suggerimenti

Penso che hazelcast è in modo ecquisto quel genere di cose;Computing distribuito incorporato.Ma è in Java, non C. Ma puoi chiamare c da Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top