Verwendest du eine eigene Implementierung eines bestimmten Algorithmus zur Berechnung der Nachkommastellen oder greifst du für die Berechnung auf vorhanden Code zurück (Super PI o.ä.)? Hat man bei den Algorithmen überhaupt großartig Auswahl, oder gibt es da im Endeffekt nur einen einzigen, der von der Komplexität her in Frage kommt? (Ich hab keine Ahnung davon, wie man Nachkommastellen von PI berechnet.)
Zum "mmx / sse support": Das bringt doch afaik hauptsächlich was bei Fließkomma-Anwendungen, oder? Hast du damit denn was zu tun oder sind die Algorithmen - was ich erwarten würde - rein numerisch, also auf ganzen Zahlen basierend?
Zum "multithread": Kann man so eine Pi-Berechnung sinnvoll auf mehrere Kerne verteilen? Also z.B. Kern 1 berechnet Stellen 1 bis 1000 während Kern 2 die Stellen 1001 bis 2000 berechnet. Oder rechnet nur ein Kern wirklich an Pi und die restlichen Cores übernehmen Verwaltungsaufgaben und GUI-Darstellung?
hi,
formel:
ich nutze eine von mir modifizierte version der Gauss-Legendre formel zum berechnen der kreiszahl pi.
für intressierte:
http://www.uni-leipzig.de/~sma/pi_einfuehrung/ausblick.htmlsse/mmx:
intern wird die berechnung u.a. durch Fast Fourier/Cosine/Sine transformationen unterstützt,
diese basieren alle auf Double/Long variablen, die wiederum in der FPU(NPU) der CPU ablaufen.
multithread:
ja man kann, der aufwand ist jedoch immens.
hier bei maxxpi² ist es ein mainthread der über den sheduler von windows die rechenlast
verteilt. auf alle cores, aber nicht paralell rechnet (dies ist in abhängigkeit vom verwendeten BS und der programm/thread priorität zu sehen)
insofern ist die max. auslastung auf einem dualcore =50%, quad=25% usw.
einen kleinen vorteil haben die multicores aber dennoch (gegenüber einem singlecore):
maxxpi² bekommt mit einer multicore cpu *immer 100% der rechenleistung *eines kerns.
währenddessen bei einer singelcore cpu dies nicht der fall ist /sein kann,
da andere prozesse konkurrierend (z.b. das BS selber)
auf den einzelnen kern einwirken und er so nie 100% bereitstellen kann.
cu
alice