Dienstag, 18. Mai 2010

Distributed Computing

Wenn es um ein Number Crunching Problem geht, steht man vor der Frage, ob man nicht einen Computer-Cluster bzw. eine Menge von Desktop-PCs an Stelle eines Servers einsetzen sollte. Natürlich ist Distributed Computing seit Seti@Home ein hippes Thema, doch bringt Distributes Computing mit PCs nüchtern betrachtet Vorteile gegenüber der Nutzung eines grossen Servers?
In meinem Fall habe ich einen Referenz-Server, d.h. ich muss mittels Ditribueted Computing mindestens die selbe Rechenenleistung erreichen wie der Server. Natürlich muss ich vorher abschätzen, ob dies ein realisitsches Ziel ist. Die Aufage ist extrem gut parallelisierbar und damit sowohl für den Einsatz auf einem Multi-Core-Server als auch auf einem Rechner-Cluster gut geeignet. Zum abschätzen der zu erwartenden Performance der Computer bei meinem Problem nehme ich den SPECint_rate_base2006, weil er gut zu meinem Problem passt und weil SPEC-Werte für viele Systeme auf der Seite der SPEC zu finden sind. Das Referenz-System erreicht einen SPECint_rate_base2006 Wert von 268. Die Desktop-PCs schätze ich mit einem Wert von 11 (Pentium 4) und einer Arbeitszeit von 14  h pro Tag. Damit ergiebt sich folgende Formel:
P * C * h =  R * 24 ; wobei C die Anzahl der Desktop-PCs ist die benötig werden um die  Leistung des Referenzsystem R bei einer Arbeitszeit der PCs von h Stunden zu erreichen. P ist die durchschnittliche PC-Leistung. Nach dem Umstellen erhält man C = R * 24 / P / h. Für meinen Fall ergab diese Formel das ich 42 PCs benötige. Das ist eine Menge. Besser wird dieser Wert, wenn man neben den PCs auch dedizierte Server einsetzt oder die Desktop-PCs ersetzt. Mit einem Zwei-Sockel-Server (SPECint_rate_base2006  = 158) ergibt sich dann einen PC Anzahl von nur 18. Distributed Computing lohnt sich nur, wenn ausreichend ungenutzte Rechenkapazität in Form von PCs zur Vergung steht. Weiterhin wurd in der Formel nicht beachtet, dass man die Aufgaben an verschiedene Clients mehrfach vergibt, um durch Überkreuzprüfung die Richtigkeit der zurückgelieferten Werte sicherstellt.
Ein weiterer Vorteil des Ditrubted Computing Ansatzen mit PCs besteht darin, dass diese Lösung automatisch mitwächsed. Normale PCs werden alle 2 bis 3 Jahr ausgetauscht und damit erneuert sich auch der PC-Cluster, es sind keine zusätzlichen Investitionen nötig. Aber es ist davon auszugehen, dass der Aufwand für das Datenmanagement beim Distributed Computing leicht erhöht ist und dass die Software angepasst werden muss.

Keine Kommentare:

Kommentar veröffentlichen