dual prozessor oder p4ht



  • Die wenigsten Anwendungen können das Potential von Dual-Prozessor Systemen ausnutzen. Wenn du ne grosse Datenbank (Oracle o.ä) drauf laufen hast lohnt es sich vielleicht, weil es dort softwareseitig spezielle Unterstützung gibt.
    Ich würde mir eher einen grossen Einzelprozessor holen. Der P4 mit HT ist da sicherlich nicht zu verachten 😋
    Auf meinem persönlichen Wunschzettel stehen aber AMD Opteron und Athlon64 FX.
    Sind allerdings recht teuer, die grossen Brecher (Athlon64 FX, momentan um die 800€ ! 😮 )



  • @Cpp_Junky
    öhm, es geht ja weniger darum, dass die Anwendungen das ausnutzen, sobald eine Anwendung zB. Threads oder mehrere Prozesse benutzt verteilt dein Scheduler diese ja eh auf die Prozessoren. Genauso wenn du mehrere Anwendungen nebenbei laufen hast (und das ist ja eigentlich ständig der Fall :)).



  • Dual ist in vielen Dingen besser. Zumindest im Serverbereich.

    Das Dual wird nur aufgehoben wenn ein Thread wegen SYN auf den anderen warten muss. Die Software welche für DUAL geschrieben wurde verhindert das und übergibt dem Prozessor die nächste Berechnung da eine SYN nicht notwendig ist und der Thread nicht auf dem ersten Prozessor warten muss.
    (Ist aber nur ein kl. Teil wie sowas funzt)



  • kingruedi schrieb:

    @Cpp_Junky
    öhm, es geht ja weniger darum, dass die Anwendungen das ausnutzen, sobald eine Anwendung zB. Threads oder mehrere Prozesse benutzt verteilt dein Scheduler diese ja eh auf die Prozessoren. Genauso wenn du mehrere Anwendungen nebenbei laufen hast (und das ist ja eigentlich ständig der Fall :)).

    genau darum gehts... imo ist das dual - sys hier auf jeden fall im vorteil; das mit dem prozess - scheduling war mir bewusst.
    hat das mit dem hyperthreading damit zu tun das nur threads parallel laufen, also keine prozesse?
    dann wäre es nur logisch das die performance nich mit nem dual - sys mithalten kann.



  • Naja, kommt wohl sehr auf das Anwendungsgebiet und das verwendete OS an.
    Ein Kumpel von mir hat zu Hause ein Pentium3 Dual-CPU System mit zwei 500mhz Prozessoren. Die Kiste ist nur mäßig schneller als ein einzelner 500er. Wie gesagt: Anwendungs-abhänging. Der Typ spielt halt nur mit dem Ding 🙄



  • wie gesagt... die kiste soll nicht zum spielen verwendet werden... bei nem p3 geh ich auch ma davon aus das en win drauf läuft was nicht mp - fähig is ?



  • Psycho schrieb:

    wie gesagt... die kiste soll nicht zum spielen verwendet werden... bei nem p3 geh ich auch ma davon aus das en win drauf läuft was nicht mp - fähig is ?

    Nicht unbedingt - wenn du XP Pro hast, das ist MP Faehig. Homeeditions sind's leider nicht.



  • Psycho schrieb:

    hat das mit dem hyperthreading damit zu tun das nur threads parallel laufen, also keine prozesse?

    Nein. Hyperthreading kann Threads (=Prozesse) unter bestimmten Bedingungen quasi parallel ausführen. Effektiv ist es aber immer noch _eine_ CPU, bei der halt manche Recheneinheiten doppelt vorhanden sind. Das heißt, die Threads laufen nicht wirklich parallel, allerdings wird durch diesen Trick eine bessere CPU-Auslastung erreicht.



  • Naja, kommt wohl sehr auf das Anwendungsgebiet und das verwendete OS an.

    Wie gesagt, von einem Dual CPU System profitieren mehrere Prozesse/Threads. Wenn du einen Benchmark Prozess hast, läuft dieser auf einem Mono CPU System genauso schnell wie auf einem Dual CPU System (okay, beim Dual System hat der Benchmark Prozess dann mehr Atem, weil Prozesse die das Mono System auf einer CPU ausführt dann auf der anderen CPU landen). Den Unterschied merkst du aber, wenn du die Benchmark zweimal gleichzeitig ausführst.

    [btw. gibt es auch noch weiter Flaschenhälse, als die CPU, die dafür sorgen, dass 2*CPU nicht 2*so schnell bedeutet]



  • laut intel wird meißtens weniger als 30% einer cpu genutzt. Bei hyperthreading wird die cpu durch einen internen sheudeler besser ausgelastet. dabei muss eine anwendung nichtmal verschiedene bereiche der cpu ansprechen, es wird auch schneller wenn beide threads z.b. die fpu nutzen.
    Bei dem neusten "Collin McRalley" wurde so (mittels openMP) ca 15%-20% mehr performance rausgehollt.

    Die CPU(s) wirkt für das OS wie ein echtes MPSystem, aber der leistungsanstieg ist maximal 30%, besonders MemoryAllignments können bei Hyperthreading Systemen Kollisionen hervorrufen und damit sogar performanceverluste bringen. Deswegen sollte man eine möglichst moderne Hyperthreading CPU kaufen, Intel hat dort (laut eigenen angaben) vieles optimiert in den neusten P4 Cpus.

    Wobei sich die Frage stellt, ob ein dual system dir wirklich vorteile bringt. Ein (gutes) OS sheudelt die einzelnen threads/processe, egal ob eine oder 2 cpus. wenn du also zwei 1.4GHz MP-CPUs hast, dann erhälst du ca 170% der leistung einer einzigen 1.4GHz SP-CPU, also 2.38GHz, du würdest also mit einer 2.4GHz CPU da (vielleicht bei niedrigerem Preis) mehr leistung rausbekommen.

    Natürlich sind diese 170% ausbeute nur so ein grober durchschnittswert, wenn du ne app hast die nur in einem thread läuft, hast du vom MPSystem nichts. Versuchst du irgend nen numbercruncher, könnte 199% drinne sein.

    Du mußt also, damit du von nem Dual system was hast, eine App nutzen die wirklich auf MPSysteme optimiert ist, ansonsten wärst du mit einer richtig schnellen einzel cpu besser dran. (Sofern dein OS gut ist, aber dahingehend ist der neue linux 2.6 kernel sehr optimiert und hat wenig "locks")

    rapso->greets();



  • ich versteh nur noch nicht so richtig was das mit den threads auf sich hat...
    soweit ich das verstanden hab läuft ein "normaler" lib - thread im adressraum des prozesses, der ihn erzeugt hat; also thread != prozess.
    mehrere prozesse werden aber auf die verschiedenen cpu's verteilt. also müsste doch die performance steigen, selbst dann wenn eine anwendung nicht für dual ausgelegt ist.
    afaik ist der 2.6er dahingehend optimiert, das er "häufige" prozesswechsel unterdrückt und dadurch mehr leistung rausholt?!



  • also müsste doch die performance steigen, selbst dann wenn eine anwendung nicht für dual ausgelegt ist.

    Tut es ja auch, die Anwendung muss eben nur Prozesse und Threads benutzen und das tun nicht alle Anwendungen, vorallem da Prozesse und Threads wiederrum auch einen gewissenen eigenen Overhead mitbringen.

    afaik ist der 2.6er dahingehend optimiert, das er "häufige" prozesswechsel unterdrückt und dadurch mehr leistung rausholt?!

    Nein, der 2.6er Scheduler arbeitet nach einem O(1) Algorithmus, dass heisst, der Scheduler wird nicht langsammer, wenn er mit mehr Prozessen arbeitet.

    Also der Scheduler ist bei 1 Prozess genauso schnell wie bei 100000000 Prozessen.


Anmelden zum Antworten