Grundlegende Gedanken zu CPU und Mainboard

hallo!

Ich will einige sehr CPU-intensive Berechnungen durchführen; das Programm sieht so aus, dass es die Rechenlast in je einen Thread pro Core aufteilt und dann jeder Thread ca 5 Stunden läuft, bis er durch ist. Jeder Thread beansprucht ca. 50 MB RAM und greift während der Berechnung auf die Festplatten nahezu garnicht zu.

Ich möchte mir nun ein paar Rechner kaufen, um diese Berechnungen durchzuführen.
Die nötigen Software-Programme laufen jetzt, doch die Hardware muss halt her.
Ich habe die Möglichkeit, den folgenden Rechner für 50 Euro pro Stück zu kaufen:
IBM xSeries 345 mit
2 x Intel XEON 2,4 GHz
512 MB DDR SDRAM 266Mhz PC2100
1 x 18 GB Ultra160 SCSI

Hört sich für mich nach einem vernütigen Preis an.
Ich könnte so 1000 Euro in das Projekt investieren.
Dafür könnte ich dann 20 von den genannten Servern kaufen, womit ich dann 40 2,4 GHZ-Prozessoren hätte.

Die Prozessoren selber sind ja aber auch recht billig, so nen XEON 2,4 GHz kriege ich für unter 20 Euro.
Jetzt stellen sich mir folgende Fragen:

Was wäre für meine Anforderungen in Hinblick auf die Verhältnisse Verarbeitungsgeschwindigkeit/Stromverbrauch Verarbeitungsgeschwindigkeit/Anschaffungspreis das beste?

Es kommt primär auf die CPUs an; mit 500 MB RAM kann ich 10 Threads laufen lassen und die Festplatte muss auch nur für das OS + max 1 GB reichen.
Wäre es deshalb nicht sinnvoll, in einen Rechner möglichst viele CPUs zu stecken? Was wäre günstiger: 2 Rechner mit Mainboards die je 2 CPUs fassen oder 1 Rechner mit einem Mainbaord, auf das 4 CPUs passen?

Ist es besser, solche Low-End-Prozessoren zu nehmen? Oder lieber Dual-Core- oder Quad-Core-Prozessoren?

Mit welcher Hardware läuft mein Programm am effizientesten in Hinblick auf Anschaffungs- und Stromkosten?

Über ein paar Gedanken und vielleicht weiterführende Links würde ich mich freuen.

Gruß
Paul

hallo!

Hallo,

Ich will einige sehr CPU-intensive Berechnungen durchführen;
das Programm sieht so aus, dass es die Rechenlast in je einen
Thread pro Core aufteilt und dann jeder Thread ca 5 Stunden
läuft, bis er durch ist. Jeder Thread beansprucht ca. 50 MB
RAM und greift während der Berechnung auf die Festplatten
nahezu garnicht zu.

Ich möchte mir nun ein paar Rechner kaufen, um diese
Berechnungen durchzuführen.

Die nötigen Software-Programme laufen jetzt, doch die
Hardware muss halt her.

Ich habe die Möglichkeit, den folgenden Rechner für 50 Euro
pro Stück zu kaufen:

IBM xSeries 345 mit

2 x Intel XEON 2,4 GHz

512 MB DDR SDRAM 266Mhz PC2100

1 x 18 GB Ultra160 SCSI

Hört sich für mich nach einem vernütigen Preis an.

Der reine Anschaffungspreis klingt in der Tat verlockend.

Ich könnte so 1000 Euro in das Projekt investieren.

Das wäre allerdings nur der Kaufpreis für die Server. Es könnte aber schon malüberlegt werden, wie es sich auf Dauer dann mit den Stromkosten verhält.

Dafür könnte ich dann 20 von den genannten Servern kaufen,
womit ich dann 40 2,4 GHZ-Prozessoren hätte.

Ich würde schon mal ins Blaue vermuten, das 2 DUAL - CPU Racks mit 6 Kern - Opterons ( also 24 Kerne ) mindestens die gleiche Rechenleistung bringen.

Die Prozessoren selber sind ja aber auch recht billig, so nen
XEON 2,4 GHz kriege ich für unter 20 Euro.

Das müssen dann aber vermutlich auch identische Prozessoren zum vorhandenem System sein.

Jetzt stellen sich mir folgende Fragen:

Was wäre für meine Anforderungen in Hinblick auf die
Verhältnisse Verarbeitungsgeschwindigkeit/Stromverbrauch

Hier käme es zunächst einmal darauf an, welche Datenmenge in welcher Zeit verarbeitet werden soll, bzw. werden kann.
Dann kommt noch die Frage, welchen Energieaufwand ich einsetzen muß, um in gleicher Zeit die gleiche Leistung zu erhalten.

20 alte Server mit 40 Kernen können unter Umständen weniger erreichen als 4 moderne Server mit 16 Kernen.
Wenn wir auch berücksichtigen, das alte CPUs mit einem Kern allein in etwa einen vergleichbaren Energiebedarf wie moderne Quad/ - Hexacores haben, wird das alte System auf Dauer wohl recht teuer werden.
Dabei sei zubeachten, das die Infrastruktur ( Mainboards und Netzteile ) ebenfalls pro Stück Energie brauchen.

Verarbeitungsgeschwindigkeit/Anschaffungspreis das beste?

Da würde ich im Umkehrschluss mal grob nachrechnen, wann sich modernere Server gegenüber einer günstigen Altlösung amortisieren werden ?

Ein fiktives, vereinfachtes Rechenbeispiel:

1 Server alt = 200 Watt ( 2 Kerne / 40 nötig)
1 Server neu = 300 Watt ( 8 Kerne / 20 nötig)
Recheneffizienz ( Mflop/s ) alt / neu = 1:2 
<small>( bei angenommener, identischer Taktfrequenz )</small>Nutzungsdauer ( Vollast ) = 12 h/Tag
Stromkosten pro Kw/h = 0,25 €

Daraus ergeben sich pro Tag Energiekosten von:

Alt: ( 20\*0,2 Kw/h\*12h ) = 48 Kw/h pro Tag [12 € / Tag]
Neu: ( 5\*0,3 Kw/h\*12h ) = 18 Kw/h pro Tag [4,5€ / Tag]

Das wären im Jahr allein anhand der Beispielrechnung **~ 2700 €** gesparte
Stromkosten. 
( Nun könnte man noch evtl.noch einen möglichen Klimatisierungsaufwand des Serverraumes berücksichtigen....)

Für 3700 € sollte sich bestimmt ein zeitgemäßeres Serverarray realisieren lassen.

Es kommt primär auf die CPUs an;

Ich weiss jetzt nicht, was eine Opteron - Quadcore kostet, aber 4 der alten Xeons kosten auch ~ 80 €. Bei neuen ( und weniger ) CPUs ist natürlich auch die Wahrscheinlichkeit geringer,das ein Prozessor vorzeitig ausfällt.
Es sei dazu zu bedenken, das auch Halbleiter im Betrieb einem gewissem Verschleiß unterliegen. Da wirst Du also bei alten Xeons mit etlichen 1000 geleisteten Betriebsstunden ein deutlich erhöhtes Risiko haben, das Hardware - Komponenten ausfallen werden.

mit 500 MB RAM kann ich 10
Threads laufen lassen und die Festplatte muss auch nur für das
OS + max 1 GB reichen.

Auch als Laie stelle ich mir mal vor, das es nicht ganz so einfach laufen wird, denn das Betriebssystem wird selber schon einmal einen Teil des RAM für sich und den Betrieb des Systems benötigen.

Wäre es deshalb nicht sinnvoll, in einen Rechner möglichst
viele CPUs zu stecken? Was wäre günstiger: 2 Rechner mit
Mainboards die je 2 CPUs fassen oder 1 Rechner mit einem
Mainbaord, auf das 4 CPUs passen?

Vom Stromverbrauch her wird es sicher schon mal Sinn machen, möglichst viele Kerne auf einem Board vereinen zu können. Denn wie oben schon erwähnt, braucht ein Mainboard mitsamt Lüftung für seinen Betrieb auch schon mal Energie.
Da würde 1x4 bestimmt noch etwas besser abschneiden, als 2x2.
( Boards mit Prozessoren )
Ich denke aber mal, das Boards mit Dual - CPU am verbreitetstem sind.
Und da ein Board auch mal den Geist aufgeben kann, würde ich mal schauen, was sich nachträglich zu welchem Preis wie einfach beschaffen läßt.

Ist es besser, solche Low-End-Prozessoren zu nehmen? Oder
lieber Dual-Core- oder Quad-Core-Prozessoren?

Ich würde dann aus o.g. Gründen lieber mal Rat bei Experten einholen und den eigenen Ansprüchen entsprechend in aktuelle Hardware zu investieren.

Da können Profis Dir gewiss etwas Angemessenes empfehlen.

Mit welcher Hardware läuft mein Programm am effizientesten in
Hinblick auf Anschaffungs- und Stromkosten?

Welche Rechenleistung Du wirklich benötigst und in wie weit sich das Programm parallelisieren läßt, weiss ich nicht.
Aber nach obiger Beispielrechnung kannst Du Dir vorab schon mal Gedanken machen, was bezüglich Verbrauch und Zuverlässigkeit auf Dauer sinnvoller wäre. ( Zumal Strom auch nicht billiger wird )

Über ein paar Gedanken und vielleicht weiterführende Links
würde ich mich freuen.

Was für Rechenleistung bezüglich Deiner Software sinnvoll wäre, kannst Du hier bestimmt schon mal in den Software / Anwendungsbrettern vorab grob abklopfen.

Derart spezielle Links kann ich Dir als Laie leider nicht anbieten. :frowning:

Gruß

Paul

mfg

nutzlos

hm
danke für deine Gedanken!
Ich hab sowas schon geahnt^^

Ich werde mir mal ein paar einzelne Rechner kaufen: einen alten, einen mittleren und einen neuen.
Dann Stromverbrauch und Rechenleistung etc etc messen und dann entscheiden.
Mal sehen, was dabei rauskommt.

Was mir noch eingefallen ist, dass eventuell auch die Geschwindigekeit des RAMs einen Effekt haben wird.
Wenn mein Programm läuft, ist die CPU-Auslastung aber durchgehend auf 100%.
Wenn das der Fall ist, müsste der RAM ja schnell genug sein, ne?
Solange die CPU auf 100% ist, wird sie ja der limitierende Faktor sein.

Gruß
Paul

Hallo Paul

Ich will einige sehr CPU-intensive Berechnungen durchführen;
das Programm sieht so aus, dass es die Rechenlast in je einen
Thread pro Core aufteilt und dann jeder Thread ca 5 Stunden
läuft, bis er durch ist. Jeder Thread beansprucht ca. 50 MB
RAM und greift während der Berechnung auf die Festplatten
nahezu garnicht zu.

Welches Betriebssystem? Was ist das für ein Programm?
Wieviele Threads sind sinnvoll möglich? Willst Du die
Rechner vernetzten, um das Programm simultan parallel
über die Rechner laufen zu lassen - oder läuft jeder
Rechner mit zwei Threads und einem Programm für sich?

Ich möchte mir nun ein paar Rechner kaufen, um diese
Berechnungen durchzuführen.

Das mache ich hier regelmäßig :wink:

Ich habe die Möglichkeit, den folgenden Rechner für 50 Euro
pro Stück zu kaufen:
IBM xSeries 345 mit
2 x Intel XEON 2,4 GHz
512 MB DDR SDRAM 266Mhz PC2100

OK, was für XEONs sind denn das? Singlecore, richtig?

Hört sich für mich nach einem vernütigen Preis an.

Mal sehen.

Ich könnte so 1000 Euro in das Projekt investieren.
Dafür könnte ich dann 20 von den genannten Servern kaufen,
womit ich dann 40 2,4 GHZ-Prozessoren hätte.

Und der Wartungsaufwand für 20 komplette Rechner mit
je geringer Rechenleistung? Worunter liefen die nochmal?

Die Prozessoren selber sind ja aber auch recht billig, so nen
XEON 2,4 GHz kriege ich für unter 20 Euro.

Was wäre für meine Anforderungen in Hinblick auf die
Verhältnisse Verarbeitungsgeschwindigkeit/Stromverbrauch
Verarbeitungsgeschwindigkeit/Anschaffungspreis das beste?

Es kommt primär auf die CPUs an; mit 500 MB RAM kann ich 10
Threads laufen lassen und die Festplatte muss auch nur für das
OS + max 1 GB reichen.

Wäre es deshalb nicht sinnvoll, in einen Rechner möglichst
viele CPUs zu stecken? Was wäre günstiger: 2 Rechner mit
Mainboards die je 2 CPUs fassen oder 1 Rechner mit einem
Mainbaord, auf das 4 CPUs passen?

Schwer zu sagen. Kann sich das Programm (z.B. über OpenMPI)
auch mit mehreren Rechnern gleichzeitig nutzen lassen? Oder
ist das nicht sinnvoll, da Du auch mehrere unabhängige
Probleme getrennt rechen möchtest?

Ist es besser, solche Low-End-Prozessoren zu nehmen? Oder
lieber Dual-Core- oder Quad-Core-Prozessoren?

Wer weiss.

Mit welcher Hardware läuft mein Programm am effizientesten in
Hinblick auf Anschaffungs- und Stromkosten?

Das müßtest Du uns sagen !?

Über ein paar Gedanken und vielleicht weiterführende Links
würde ich mich freuen.

Vermutlich ist es eine schlechte Idee, sowas zu machen.
Aus meinen Daten ersehe ich, daß ein einziger i7/875K
bei 8x3,4GHz acuh summa summarum etwas schneller ist,
als 8 einzelne, GBit-vernetzte Athlon/64-3400+.

Grüße

CMБ

hm
danke für deine Gedanken!
Ich hab sowas schon geahnt^^

Hallo,

Ich werde mir mal ein paar einzelne Rechner kaufen: einen
alten, einen mittleren und einen neuen.

Warum ?

Dann Stromverbrauch und Rechenleistung etc etc messen und dann
entscheiden.
Mal sehen, was dabei rauskommt.

Annäherungsweise würden sich viele Vergleichswerte schon im Netz für diverse Beispielkonfigurationen ermitteln lassen.
Intel und AMD z.B. haben für ihre Prozessoren auch direkt Datenblätter auf ihren Seiten.

Was mir noch eingefallen ist, dass eventuell auch die
Geschwindigekeit des RAMs einen Effekt haben wird.

In gewissem Maße schon, aber bezogen auf die jeweils bestimmte Vergleichsplattform bliebe zu recharchieren, in wie weit sich theoretische Bandbreitenzuwächse in der praktischen Anwendung auch positiv auswirken würden.

Wenn mein Programm läuft, ist die CPU-Auslastung aber
durchgehend auf 100%.

Sagen wir eher, das genügend Ram vorhanden ist und wenig/selten von Datenträgern nachgeladen werden muß.

Es bleibt ja auch zu berücksichtigen, welche Abtastrate das Analysetool dann hätte. Es könnte schon sichtbar werden, wenn Du z.B. einem schnellem Phenom II x4 nur 1x4 GiB des langsamstem DDR3 Speichers zur Seite stellst, anstatt 2x2 GiB schnelle Riegel im Dual - Channel Modus zu verwenden.

Dann würden die Peakwerte der Prozessorauslastung in ersterem Fall wohl unregelmäßiger sein.

Wenn das der Fall ist, müsste der RAM ja schnell genug sein,
ne?

Plattformspezifisch werden sich die max. Leistungsunterschiede in der Praxis unter 10 % halten. Die höheren Werte dann jeweils bei dem schnellstem Prozessor seiner Baureihe.

Solange die CPU auf 100% ist, wird sie ja der limitierende
Faktor sein.

Bei einem Einzelkern : Ja.
Bei Mehrkernern dann, wenn alle Kerne auf 100% arbeiten.

Gruß
Paul

mfg

nutzlos

Huhu,

das wäre doch eine ganz typische Anwendung für Cloud-Computing. Schonmal daran gedacht?

Weiterhin könnte man auch überlegen, ob man die Berechnungen von Grafikkarten durchführen lassen kann - die sind ja „extrem multicore“. Hier sei „CUDA“ zum Googeln mal als Beispiel genannt.

VG