Heute stelle ich meinen PI-Calculator vor.
Anregung für dieses Programm war SuperPI. SuperPI besitzt keine Möglichkeit des Multithreadings, das heißt, dass die ganze Berechnung nur auf einer CPU stattfindet. Und die heutige Architektur geht halt in Richtung Multicore...
PI-Calculator unterstützt Multithreading.
In diesem Fall bedeutet Multithreading, dass die Berechnung der PI-Stellen in zwei Threads (auf Wunsch kann ich das auch ausbauen) parallel geschieht.
Entwickelt wurde der Algorithmus von Fabrice Bellard. Auf seiner Seite bietet er C-Quellcode zu einem Programm, das auf diesem Algorithmus basiert. Diesen Quellcode habe ich nach C# portiert.
PI-Calculator ist unter der GPL lizenziert.
Und so sieht PI-Calculator aus:

Zu den wichtigsten Klassen will ich auch ein paar wenige Worte verlieren. Dieses mal nicht ganz OOP, aber immerhin

MyForm - Das Hauptfenster
PI - Implementiert den oben erwähnten Algorithmus
Controller - Bildet die Schnittstelle zwischen der Form und der Fachklasse. Bspw initialisiert und startet er die benötigten Threads und übergibt anschließend das Ergebnis an die Form.
Genug der Worte, kommen wir zum Praktischen.
Zur Bedienung muss ich keine Worte verlieren. Das Bild oben verdeutlicht, dass es sich um eine einfach zu bedienende GUI handelt.
Auf meiner Gurke (Notebook PIV 3.04 HT) komme ich zu folgenden Ergebnissen:
Stellen: 1800
Singlethread: 39,6656
Multithread: 26,6243
Und nun zeigt mal was eure Kisten drauf haben!

Benötigt wird das .NET Framework 2.0
Konstruktive Kritik und Verbesserungsvorschläge sind natürlich immer erwünscht!
Angehängte Datei(en)
-
PI.7z (10,47K)
Anzahl der Downloads: 707 -
PI_source.7z (56,86K)
Anzahl der Downloads: 399
Dieser Beitrag wurde von Witi bearbeitet: 18. April 2006 - 21:34