21

Attualmente sto ricercando le opzioni disponibili (sia Open Source che Commerciale) per lo sviluppo di un'applicazione distribuita.Distributed Computing Framework (.NET) - Specificamente per CPU Operazioni intensive

"Un sistema distribuito è costituito da più computer autonomi che comunicano attraverso una rete di computer." Wikipedia

L'applicazione è focalizzata sulla distribuzione altamente CPU operazioni (al contrario di dati ad alta intensità), quindi sono sicuro soluzioni MapReduce non misura la fattura.

Qualsiasi framework che è possibile raccomandare (+ fornire un breve riepilogo di qualsiasi esperienza o confronto con altri framework) sarebbe molto apprezzato.

+0

Sto lavorando attivamente a questo argomento, quindi non ho vergogna di aggiungere anche le mie risposte a questa domanda, tutto per il bene maggiore! – holsee

+0

Ho fatto tutte le mie risposte Community Wiki (sembra giusto) per permettere di aggiungere ulteriori note di interesse come la comunità ritiene opportuno. – holsee

+0

Quindi alcuni anni lungo la strada, MPAPI è ancora la risposta corretta che pensi? – Andreas

risposta

11

MPAPI Framework - http://www.codeplex.com/MPAPI

miei pensieri

  • sembra essere una delle soluzioni più semplici.
  • Non vedo alcuna evidenza di supporto per il failover.
  • È open source =] ed è compatibile MONO!
  • Utilizza la struttura "RemotingLite" con la compatibilità mono.
  • La scrittura di applicazioni su computer singolo o su più computer (cluster) è altrettanto semplice.
  • La filosofia dello sviluppatore è "Performance is Paramount". Quindi è sicuro di dire che ha ottimizzato.
  • Quadro continuamente aggiornato.
+0

Mi piace molto MPAPI. Ha fatto quasi tutto quello che volevo ma non tutto, così ho creato [DuoVia.MpiVisor] (http://duovia.net/using-mpivisor-code-sample/) ispirato al lavoro di Frank. Per me è più facile da usare, ma probabilmente è perché l'ho scritto. ;-) –

2

Alchemi ".NET Framework Grid Computing"

http://www.gridbus.org/~alchemi/publications.html

http://sourceforge.net/projects/alchemi/files/

Alchemi è un framework di grid computing .NET che consente di aggregare in modo indolore la potenza di calcolo delle macchine intranet e connesse a Internet in un supercomputer virtuale (grid computazionale) e di sviluppare applicazioni da eseguire sulla rete.

Quick Notes:

  • smesso di essere aggiornato nel 2007 la versione 1.0.6 (NET 2.0).
  • Ben documentato formalmente fatto così.
  • Utilizza XML per definire i lavori. (È stato di gran moda nel 2007 utilizzare XML per tutto)
  • Relativamente complesso rispetto a MPAPI, ma non considerarlo come un grosso negativo.
  • Ci vorrebbe un bel po 'di tempo per mettersi al passo.
  • Is Open Source =).
  • estendibile e può essere utilizzato in combinazione con altre tecnologie di cluster tramite un broker Gridbus (http://www.gridbus.org)
  • sembra ampiamente utilizzati (vedi pubblicazioni http://www.gridbus.org/~alchemi/publications.html) =)
0

NGrid-http://ngrid.sourceforge.net/

Panoramica

NGrid è un framework di grid computing open source (LGPL) scritto in C#.

  • indipendente dalla piattaforma attraverso il progetto Mono .
  • una programmazione multithread trasparente modello per la programmazione della griglia.
  • una struttura fisica della griglia & alcune implementazioni della griglia .
  • utilità comuni sia per la programmazione della griglia sia per l'implementazione della griglia.
  • ultimo aggiornamento maggio 2008
+1

NGrid è ancora un work in progress? –

1

DryadLINQ è un progetto di Microsoft Research per consentire query LINQ per essere distribuiti tra più computer, piuttosto che solo più core come fa Parallel LINQ.

Blog post with a brief example.

0

AWS SDK per .NET - http://aws.amazon.com/sdkfornet/

credo che questa offerta cloud e API .NET possono anche andare bene il disegno di legge. Amazon offre macchine ad alte prestazioni (see price list) che consentirebbero la delega dell'esecuzione di opperations ad alta intensità di CPU su larga scala.

3

Appistry CloudIQ Piattaforma

  • Will fare centinaia di macchine vengono visualizzate come una risorsa di calcolo.
  • attualmente in uso in produzione presso FedEx per eseguire algoritmi di routing
  • consente di scrivere applicazioni in C, C++, Java e .Net
  • Nessun singolo punto di guasto
  • Auto recuperare/tentativi di attività non riuscite
+2

Come funziona questo lavoro in particolare? È come un sistema di bilanciamento del traffico di rete? Abbiamo usato appliedalgo.com - che prevede la pianificazione, la gestione dell'esecuzione (persistenza + tracciamento della cronologia dell'esecuzione/parametri/risultati), bilanciamento del carico. L'implementazione del bilanciamento del carico calcola "Punteggio host" in base all'utilizzo della CPU/memoria e all'attività del disco (anche con l'override) e alla semplice "API di estensione" accessibile da entrambi i client .NET e Java. Ancora più importante, è un'app server completamente autonoma con la propria GUI in modo da poter richiamare parametri e risultati di esecuzione e fare rapidi confronti. –

+1

Informazioni su appliedalgo.com, hai detto che supporta sia Java che .NET ma funziona solo su Windows? Inoltre, che dire di C++? E Linux? –

+1

La nostra azienda ha solo lavori codificati in .NET, Java e alcuni in SQL, niente in C++ e non sono sicuro che supportino i client in C++. Con AppliedAlgo, puoi codificare i tuoi lotti tramite "Extension API" - interfaccia basata su WCF esposta tramite WsHttpBinding per .NET e BasicHttpBinding per Java. Non si fa menzione del C++ comunque. Inoltre, il loro bilanciamento del carico funziona distribuendo ai nodi connessi (NodeController, che funziona solo su Windows, non su Linux) –

4

Sono stato uno dei principali sviluppatori di Alchemi. Abbiamo dovuto cambiare rotta per iniziare fresco e il risultato è la piattaforma di utilizzo. Concettualmente simile a Alchemi, la piattaforma Utilify si basa sulle lezioni apprese da Alchemi e fornisce un modello di programmazione più flessibile per creare applicazioni .NET distribuite su una rete Windows.

Visitare il sito www.utilify.com per ulteriori informazioni. Attualmente, è disponibile una versione beta gratuita per il download.

Saluti, Krishna.

+0

Ho provato a installare Utilify Manager e ho ricevuto l'errore. Quindi non potevo procedere oltre. L'errore indica che il pacchetto è danneggiato. – mohang