Welche Projekte sind besonders für Linux und welche für Windows geeignet?

Das wäre schon direkt mal ne plausible Erklärung, aber warum die 32er nicht?
Sollte doch ansich erstmal nur eine Compiler-Option sein die aktiviert wird, oder wird "per Hand" vektorisiert?
 
Vielleicht weil auf einem SSE2-System (ohne Abfrage) nicht sichergestellt ist, ob SSE2 überhaupt verfügbar ist. Bei einem x64 System gehört ja SSE2 per Definition zur Befehlssatzerweiterung.
 
Yoyo-ecm-WUs sind unter WinXP 32bit absolut für die Tonne. *buck* Da komm ich mit dem Q9550 pro Tag auf etwa 1500 Credits, unter 64bit ist das dann fast Faktor 3 besser.
Da stimmt irgendwas mit der Anwendung nicht?
Ich versteh nicht warum das unnormal ist. Ein 64bit system kann in einem Schritt 64bit Zahlen handhaben, ein 32bit system nur 32. Sprich bei großen Zahlen muss das 32 bit system diese öfter in 32bit Teile zerlegen und damit rechnen und sie wieder zusammensetzen als ein 64bit system.

Oder als Beispiel, die hast 2 Autos, in das eine passen 32 Kästen Bier in das andere 64. Jetzt sollst du vom Getränke markt 128 Kästen holen. Mit welchem wirst Du die Aufgabe schneller erledigt haben?

yoyo
 
@YoYo
Gute Frage! Wenn der kleinlaster mit dem Platz für 64 Kisten einen höheren Luftwiderstand und weniger PS hat, würde ich den kleinen Flitzer vorziehen *chatt*

nein - schon klar, so groß ist der overhead in x64 auch wieder nicht.
 
Ich versteh nicht warum das unnormal ist. Ein 64bit system kann in einem Schritt 64bit Zahlen handhaben, ein 32bit system nur 32. Sprich bei großen Zahlen muss das 32 bit system diese öfter in 32bit Teile zerlegen und damit rechnen und sie wieder zusammensetzen als ein 64bit system.

Oder als Beispiel, die hast 2 Autos, in das eine passen 32 Kästen Bier in das andere 64. Jetzt sollst du vom Getränke markt 128 Kästen holen. Mit welchem wirst Du die Aufgabe schneller erledigt haben?

yoyo

Das Prinzip hinter den Architekturen ist mir durchaus bewußt, es ging hier speziell um den Faktor 3. ;)

Denn um an dein Beispiel anzuknüpfen:
Wenn ich jetzt mit dem großen Auto bei nur doppelter Ladekapazität ganze dreimal so schnell bin wie mit dem Kleinen - dann muss ich im Großen irgendwo noch Bierkästen auf die Sitze gepackt haben. ;)

Allein der Faktor 2 ist nicht mal so eben zu erreichen, dafür muss der Code schon geeignet und auch entsprechend programmiert sein.
Als Beispiel kann man da z.B. zu SIMAP schauen, da bringt die native 64bit-SIMAP-App einen Vorteil von ca. +10% gegenüber 32 bit. Ist natürlich schneller als mit 32 bit, aber bei weitem keine +200%.
 
Ich hab evtl. den ganzen Thread nicht ganz gelesen, aber wie kommst Du auf Faktor 3? Wenn Du beide vergleichst, dann sollte das mit der gleichen WU erfolgen. Der vordere Teil der WU ecm_op_1263185731_2801_79M.C269_* sollte gleich sein. Denn leider gibts auch Unterschiede zwischen den WUs.
yoyo
 
Ich hab einfach mehrere Tagesdurchschnitte genommen, darüber gemittelt macht sich der Unterschied der unterschiedlichen WUs nicht groß aus. Deren Creditabweichungen sind auch sowieso nicht so heftig, dass es einen so großen Unterschied machen würde, siehe Creditindex.
 
Das Prinzip hinter den Architekturen ist mir durchaus bewußt, es ging hier speziell um den Faktor 3. ;)

Denn um an dein Beispiel anzuknüpfen:
Wenn ich jetzt mit dem großen Auto bei nur doppelter Ladekapazität ganze dreimal so schnell bin wie mit dem Kleinen - dann muss ich im Großen irgendwo noch Bierkästen auf die Sitze gepackt haben. ;)

Allein der Faktor 2 ist nicht mal so eben zu erreichen, dafür muss der Code schon geeignet und auch entsprechend programmiert sein.
Als Beispiel kann man da z.B. zu SIMAP schauen, da bringt die native 64bit-SIMAP-App einen Vorteil von ca. +10% gegenüber 32 bit. Ist natürlich schneller als mit 32 bit, aber bei weitem keine +200%.

Das bedeutet doch nur das in Simap etwa 10% der kompletten Berechnung von größeren Datentypen gebrauch macht [welche unter 64Bit eben doppelt so schnell bearbeitet werden können]. Könntest du dir vorstellen das in YoYo ECM mehr als 10% der Berechnung davon Gebrauch macht? Zudem könnte [je nach compiler] unter x64 auch SSE2 aktiv sein, was unter x64 garantiert immer zur Verfügung steht (hardware), jedoch unter x86 nicht. Dadurch könnte u.U. ein größerer Speedup als 2x auftreten.
 
Ach übrigens, um eine einzige 64Bit Integer-Multiplikation auf einer 32Bit-CPU zu emulieren, benötigt man ganze vier 32Bit Multiplikationen, und vier 32 Bit Additionen (+ Kleinkram). Der Aufwand einer Multiplikation steigt dummerweise quadratisch mit der Länge (in Bit) der Zahl. Wenn sowas eine Rolle spielt, sind sehr schnell auch Beschleunigungen über Faktor 2 drin.

Wenn breitere Integer-Datentypen keine Rolle spielen, kann man dadurch profitieren, daß im 64Bit Modus doppelt so viele Register zur Verfügung stehen (sowohl für Integer als auch SSEx), man kann also mehr Werte dort drin behalten und muß nicht ständig über den Stack in den Speicher (L1-Cache) auslagern. Der Code wird zwar meist ein wenig größer (problematischer für die Decoder, insbesondere die K10 kommen damit oft besser klar als intels, da sie mehr Bandbreite zu den Decodern haben), aber in der Summe gibt es für alle CPUs in 64Bit meist ein kleines Geschwindigkeitsplus, eventuell sogar ein großes.
 
Probier es doch mal aus und meld es dann!
 
Nimm Ubuntu, damit wirste schon zurechtkommen. ;)


@ 2D: Dass mit SSE2 hatten wir ja schon vorher besprochen (s.o.) dazu unten gleich mehr, was den SIMAP-Vergleich angeht wollte ich damit nur zum Ausdruck bringen, dass 64bit kein Selbstläufer ist was den Speedup angeht. ("[...]dafür muss der Code schon geeignet und auch entsprechend programmiert sein[...]")


Bei ecm dürfte die Wortbreite zwischen 64 und 128 bit liegen, ausgehend von der genutzten elliptic curve factorization - genau kann ich es natürlich nicht sagen da ich den Code nicht kenne. SSE2 kann also durchaus eine Rolle spielen, aber auch Gipsels Einwand der zusammengesetzten Wortbreiten.

Hab übrigens jetzt mal von WinXP_32 (C2Q) zu Win7_64 (C2Q) verglichen und bekomme in dem Fall sogar einen Faktor 4 für den Speedup.
 
Danke, gut zu wissen. Wenn ich die Tage mal Zeit hab wärs interessant ob das Aufklärung bietet.

Oder kannst du schon direkt was zu dem Thema sagen?
 
Ich kann da nicht viel zu sagen. Ich hab das lediglich mal am Anfang unter Linux32 übersetzt um den Client kennen zu lernen. Ansonsten hab ich mir die Binaries von den Leuten übersetzen lassen, die den ständig benutzen und mit der Optimierung Ahnung haben. Die findet man alle im mersenne forum.
Es waren zumindest Optimierungen für die einzelnen Prozessortypen im configure dabei.
Bei der Windows32 Version war es mir eher wichtig eine Version zu haben die auf allen Windozen und Prozessoren läuft als die super optimale zu haben. Kann also gut sein, dass eine auf seinen Prozessor optimierte Version noch etwas schneller ist.
Du brauchst auch die libgmp für die mathematischen Operationen, glaube dort zu optimieren bringt am meisten.
yoyo
 
Bei ecm dürfte die Wortbreite zwischen 64 und 128 bit liegen, ausgehend von der genutzten elliptic curve factorization - genau kann ich es natürlich nicht sagen da ich den Code nicht kenne. SSE2 kann also durchaus eine Rolle spielen, aber auch Gipsels Einwand der zusammengesetzten Wortbreiten.

Hab übrigens jetzt mal von WinXP_32 (C2Q) zu Win7_64 (C2Q) verglichen und bekomme in dem Fall sogar einen Faktor 4 für den Speedup.
Ohne jetzt in den Code geschaut zu haben, aber da sind so viele Assembler-Routinen dabei, die alle MUL im Namen haben (grob 90% aller Quellcode-Dateien heißen mul*.asm), daß man da wohl in sehr guter Näherung meine Erklärung zum Faktor 4 bei Beteiligung von Multiplikationen anführen kann ;)
 
Q9550 @ 3,7 GHz Linux 64-bit RAC 1.737
Q9550 @ 3,4 GHz Windows 32-bit RAC 1.864

Würden Beide gleichschnell laufen, dürfte der Unterschied ~ 10% ausmachen?
 
Hier sind noch zwei WCG-Projekte, die besser unter LInux laufen als unter Windows.

The Clean Energy Project - Phase 2 (besonders, weil noch keine Windows-App existiert, Termin für die App war eigentlich schon der 17. Juli)
Computing for Clean Water - hier laufen die Berechnungen anscheinend unter Linux flotter
 
32bit Linux oder 64bit? Und was heißt anscheinend, hast du Daten?
 
Wir haben hier schon ein paar Werte zusammengetragen. Sieht nicht so aus, als ob es einen Unterschied zwischen 32- und 64-Bit gibt.

Ergänzung: Es gibt nur Apps für 32-Bit.
 
Zuletzt bearbeitet:
Sollte man den Fred nicht vielleicht weiterführen und als "Wichtig" anpinnen?!

Only my 5 Cent,
Ritschie
 
Nun ja, der Thread schon 4 Jahre alt und durch C.I.2 (Credit Index 2) unserer Stat.-Page fast überflüssig.
 
Zurück
Oben Unten