Computing-Framework verteilt (.NET) - besonders für CPU Intensive Operationen [geschlossen]
-
20-09-2019 - |
Frage
Ich bin derzeit die Optionen untersucht, die verfügbar sind (sowohl Open Source und Commercial) für eine verteilte Anwendung zu entwickeln.
„Ein verteiltes System besteht aus mehreren autonomen Computern, die über ein Computernetz kommunizieren kann.“ Wikipedia
Die Anwendung konzentriert sich auf den Vertrieb hoch CPU-Kapazität Operationen (im Gegensatz zu Daten intensiv), so bin ich sicher, MapReduce-Lösungen haben die Rechnung nicht passen.
Jeder Rahmen, dass Sie empfehlen können (+ eine kurze Zusammenfassung von Erfahrungen oder Vergleich zu anderen Frameworks geben) würde sehr geschätzt werden.
Lösung
MPAPI Rahmen - http://www.codeplex.com/MPAPI
Meine Gedanken
- Es scheint eine der einfacheren Lösungen.
- Ich sehe keinen Beweis für Failover-Unterstützung.
- Ist Open Source =] und ist MONO Kompatibel YAY!
- verwendet den "RemotingLite" Rahmen hense die Mono-Kompatibilität.
- Schreiben einzelne Computer oder mehrere Computer (Cluster) Anwendungen sind genauso einfach.
- Philosophie des Entwicklers ist „Performance ist Paramount“. So ist es sicher zu sagen, er optimiert.
- Laufend aktualisierte Rahmen.
Andere Tipps
Ich war einer der führenden Entwickler auf Alchemi. Wir hatten den Kurs ändern frisch werden beginnen, und das Ergebnis ist die Utilify Plattform. Konzeptionell ähnlich wie Alchemi, die Utilify Plattform baut auf den Lehren aus Alchemi gelernt und bietet eine flexiblere Programmiermodell zu bauen verteilte .NET-Anwendungen auf einem Windows-Netzwerk.
Bitte besuchen Sie www.utilify.com für weitere Informationen. Derzeit gibt es eine kostenlose Beta-Version zum Download zur Verfügung.
Viele Grüße, Krishna.
Appistry CloudIQ Plattform http://www.appistry.com
- Werden Hunderte von Maschinen erscheinen als eine Rechenressource.
- Zur Zeit in der Produktion unter FedEx Routing-Algorithmen ausführen
- Hiermit können Sie Schreib Apps in C, C ++, Java und .Net
- No single point of failure
- Auto recover / Wiederholungs gescheiterter Aufgaben
Alchemi ".NET Grid Computing Framework"
http://www.gridbus.org/~alchemi/publications.html
http://sourceforge.net/projects/alchemi/files/
Alchemi ist ein .NET-Grid-Rahmen Berechnung, die Sie schmerzfrei ermöglicht aggregieren die Rechenleistung von Intranet- und Internet-verbundenen Maschinen in einen virtuellen Supercomputer (Rechengitter) und Anwendungen zu entwickeln, auf dem Gitter laufen.
Quick Notes:
- Gestoppt 2007 Version 1.0.6 (.NET 2.0) aktualisiert werden.
- Nun so formal getan dokumentiert.
- Verwendet XML-Jobs zu definieren. (Es war der letzte Schrei im Jahr 2007 die Verwendung von XML für alles)
- relativ komplex im Vergleich zu MPAPI, aber nehmen Sie nicht dies als ein großes negativ.
- wäre ein gutes Stück Zeit nehmen, um Geschwindigkeit zu bekommen.
- ist Open Source =).
- verlängerbar ist und kann in Verbindung mit anderen Cluster-Technologien über einen Gridbus Broker ( http verwendet werden: //www.gridbus. org )
- Seems Publikationen weit verbreitet (siehe http://www.gridbus.org/~alchemi /publications.html ) =)
Azure Grid - http://azuregrid.codeplex.com/
- Community Edition des Neudesic Grid Computing Framework ( http: // www. neudesic.com/insight/Publications/Pages/PUB20090428.aspx )
- Enthält eine GUI für das Starten und Jobläufe zu überwachen.
- Teil 1: Design, Muster für Grid Computing auf Azure.
- Teil 2: Codierung eines Azure Grid Anwendung.
- Teil 3: Laufen eines Azure Grid Anwendung.
DryadLINQ ist ein Microsoft Research Projekt LINQ-Abfragen zu ermöglichen, verteilt werden zwischen mehreren Computern, anstatt nur mehrere Kerne als Parallel LINQ der Fall ist.
AWS SDK für .NET - http://aws.amazon.com/sdkfornet/
ich denke, das Cloud-Angebot und .NET api auch die Rechnung passen. Amazon Angebot Hochleistungsmaschinen ( Preisliste ), die für die Delegierung einer Ausführung von hoch erlauben würde, CPU-intensiv opperations in großem Maßstab.
NGrid - http://ngrid.sourceforge.net/
Übersicht
NGrid ist ein Open Source (LGPL) grid computing Rahmen geschrieben in C #.
- plattformunabhängig über das Mono Projekt.
- eine transparente Multi-Thread-Programmierung Modell für die Netzprogrammierung.
- ein physisches Gitter Rahmen & einige Gitter Implementierungen.
- gemeinsamer Dienstprogramme sowohl für das Netz Programmierung oder Grid-Implementierungen.
- letzter Mai 2008 aktualisiert