High-End Desktop für Python

leichti

Cadet 4th Year
Registriert
Aug. 2014
Beiträge
80
Hallo zusammen,

ich würde für meine Gruppe für ein Forschungsprojekt gerne einen "SimulationsPC" kaufen. Darauf wird in erster Linie Python laufen, was grundsätzlich ja mit jedem Notebook möglich ist. Jetzt kann man über Sinn oder Unsinn hier einen High-End PC einzusetzen sicher streiten, ich habe selbst hab aber die Erfahrung gemacht, dass es für den Arbeitsfluss ein deutlicher Unterschied ist ob das Ausführen eines Programms 3 oder 10 oder gar 30 Sekunden benötigt.
Aktuell habe ich (glaube ich) einen AMD 3900XT verbaut und eine Geforce RTX3900. Das ganze funktioniert eigentlich nicht zufriedenstellend, weil mein Macbook Pro mit M2 beim ausführen von verschiedensten Python-Programmen ca 50% schneller ist.

Daher meine Frage: habt ihr Hardware Empfehlungen? Oder soll ich einfach ein Macbook (oder Mac) mit M3 kaufen? Hat da wer Erfahrung inwieweit eine externe GPU fürs Trainieren größerer Machine-Learning Modellen verwendbar ist?

Vielen Dank


1. Möchtest du mit dem PC spielen?
Nein
2. Möchtest du den PC für Bild-/Musik-/Videobearbeitung oder CAD nutzen? Als Hobby oder bist du Profi? Welche Software wirst du nutzen?
  • Keine Spiele,
  • Python, sehr pandas lastig, teilweise etwas größere Textdateien (z.B: 100 Dateien mit je 30-40 MB, einlesen und spaltenweise Anwendung diverser mathematischer Algorithmen), diverse Solver aus SciPy, numerisches lösen von Differentialgleichungen, Finite Elemente Modelle
  • Trainieren von Modellen mit Keras/Tensorflow oder PyTorch
  • Zukünftig verstärkt etwas CFD

3. Hast du besondere Anforderungen oder Wünsche (Overclocking, ein besonders leiser PC, RGB-Beleuchtung, …)?
Leise

6. Wie viel Geld bist du bereit auszugeben?
4000

7. Wann möchtest du den PC kaufen? Möglichst sofort oder kannst du noch ein paar Wochen/Monate warten?
Jetzt

8. Möchtest du den PC
Am liebsten als Gesamtangebot zusammengebaut kaufen.
 
Kommt halt drauf an, was du für Skripte laufen lässt. Single Core -> Kauf ein Intel, MultiCore, Kauf ein AMD. Dazu genug RAM und fertig. GPU ist uninteressant, wenn sie nicht genutzt wird. Steht und fällt halt mit den Aufgaben und wie viele parallel laufen sollen.
 
Zuletzt bearbeitet:
bei den neuen m-macs gehen keine externen gpus mehr, also die Idee fällt schonmal raus.
inwieweit jetzt ein m2 Ultra oder m3 max für deine Anforderungen sinn macht, wissen die Python-fachleute. vermutlich besser. ich denk mal, mit ner gescheiten windows/linux Kiste kommst du da effizienter weg.
 
Problem ist natürlich auch Python selber - das ist super langsam. Andere Sprachen sind schnell 100x schneller. Läuft das bei euch schon mit C-Compiler-Basis oder ist das alles über den Interpreter?

Kannst du prüfen was die CPU, RAM, HDD und GPU in euren Fällen für Workloads haben? Was genau ist denn der Flaschenhals?
 
Weißt du denn was momentan limitiert? Wird die Grafikkarte überhaupt verwendet? Können die 24 Threads vom 3900x ausgelastet werden oder läuft das nur auf einem einzigen thread?
Hier wird beispielsweise davon gesprochen wie die Leistung um bis zu 150x gesteigert werden kann wenn die Grafikkarte miteinbezogen wird.
 
leichti schrieb:
Das ganze funktioniert eigentlich nicht zufriedenstellend, weil mein Macbook Pro mit M2 beim ausführen von verschiedensten Python-Programmen ca 50% schneller ist.
Ich vermute einfach mal, dass auf deinem Rechner Windows läuft?
Tendenziell ist Python unter Linux oft mindestens doppelt so schnell wie unter Windows.

Dazu kannst du/könnt ihr auch noch überlegen, ob für euch eine alternative Python-Implementierung wie z.b. PyPy in Frage kommen könnte - je nach Einsatz können diese auch deutlich performanter als CPython sein, oftmals allerdings auf kosten nicht 100%iger Kompatibilität.

Das sind auf jeden Fall zwei Dinge, die ich erst mal in Angriff nehmen würde, bevor ich ein Upgrade der Hardware in Betracht ziehen würde ;)
 
  • Gefällt mir
Reaktionen: Ned Flanders und andy_0
leichti schrieb:
Zukünftig verstärkt etwas CFD
Mit welcher Software? OpenFOAM oder was anderes? Bei OpenFOAM bist du defacto immer über die Speicherbandbreite limitiert daher ist eine EPYC CPU mit 8 Kanälen und 24 Kernen ziemlich das Optimum.
 
Bei dem Budget empfehle ich eine Sockel 1700 Intel Platform und einen i9-14900k (~600 Euro) mit Wasserkühler (nochmal ~150 Euro). Damit wird alles schnell genug. Die 30er Serie Nvidia GPU würde ich weiterverwenden. Außerdem neues Netzteil mit 1,2 kw, zB Seasonic Vertex.

(Sollte die GPU zu langsam sein, dann baue eine 4090 ein, die passt bei dem Budget auch noch rein)
 
In welchem Universum braucht man dafür ein 1200W Netzteil?
 
Damit die nächste Intel CPU auch noch genug Saft bekommt?

Aber vielleicht bekommen die auch ncoh die Kurve, wie AMD Damals ja auch. Und der verbrauch in der Spitze sinkt wieder unter 300w
 
Danke für die ganzen Tipps.
Wisst ihr wann mit der neuen Intel-Generation zu rechnen ist? Und ob hier ggf. wirklich ein größerer Sprung zu erwarten ist?

Donnidonis schrieb:
Kommt halt drauf an, was du für Skripte laufen lässt. Single Core -> Kauf ein Intel, MultiCore, Kauf ein AMD. Dazu genug RAM und fertig. GPU ist uninteressant, wenn sie nicht genutzt wird. Steht und fällt halt mit den Aufgaben und wie viele parallel laufen sollen.

Auch wenn einiges parallelisierbar ist ist mir die Single-Core Performance grundsätzlich wichtiger.

He4db4nger schrieb:
bei den neuen m-macs gehen keine externen gpus mehr, also die Idee fällt schonmal raus.
danke!

andy_0 schrieb:
Problem ist natürlich auch Python selber - das ist super langsam. Andere Sprachen sind schnell 100x schneller. Läuft das bei euch schon mit C-Compiler-Basis oder ist das alles über den Interpreter?

Kannst du prüfen was die CPU, RAM, HDD und GPU in euren Fällen für Workloads haben? Was genau ist denn der Flaschenhals?
Ich kann leider nicht sagen ob CPU oder RAM bzw. das Interface limitiert


timmey77 schrieb:
Weißt du denn was momentan limitiert? Wird die Grafikkarte überhaupt verwendet? Können die 24 Threads vom 3900x ausgelastet werden oder läuft das nur auf einem einzigen thread?
Hier wird beispielsweise davon gesprochen wie die Leistung um bis zu 150x gesteigert werden kann wenn die Grafikkarte miteinbezogen wird.
Häufig sind es reine Single-Core-Skripte. Wenn viele Dateien gelesen werden verteilen wir das schon auf mehrere Kerne. Oder bei Simulationen mit verschiedenen Parametern lassen wir halt auch pro Kern eine Simu laufen.
Danke für den Hinweis auf cuDF, das ist auf alle Fälle interessant.


Termy schrieb:
Ich vermute einfach mal, dass auf deinem Rechner Windows läuft?
Tendenziell ist Python unter Linux oft mindestens doppelt so schnell wie unter Windows.

Dazu kannst du/könnt ihr auch noch überlegen, ob für euch eine alternative Python-Implementierung wie z.b. PyPy in Frage kommen könnte - je nach Einsatz können diese auch deutlich performanter als CPython sein, oftmals allerdings auf kosten nicht 100%iger Kompatibilität.

Das sind auf jeden Fall zwei Dinge, die ich erst mal in Angriff nehmen würde, bevor ich ein Upgrade der Hardware in Betracht ziehen würde ;)
Dass Python unter Linux viel schneller ist wäre mir neu? Gibt es dazu irgendwo weitere Infos?
Danke! PyPy macht natürlich ab einem gewissen Zeitpunkt Sinn. Wenn ich aber die Auswirkung kleiner Änderungen testen will (und das ist genau das Szenario wo ich gerne eine schnellere Hardware hätte) müsste ich dazu jedesmal vorher kompilieren. Das​


Tenferenzu schrieb:
Mit welcher Software? OpenFOAM oder was anderes? Bei OpenFOAM bist du defacto immer über die Speicherbandbreite limitiert daher ist eine EPYC CPU mit 8 Kanälen und 24 Kernen ziemlich das Optimum.
Ja, wenn dann OpenFOAM. Aber darauf würd ich aktuell gar nicht zu sehr Rücksicht nehmen
 
Ich würde da auch unbedingt mal schauen, was limitiert und dann an beiden Fronten optimieren.
Es bringt, wie schon angesprochen nichts, wenn du dir den dicksten Prozessor holst, wenn dein Script nur einen Kern benutzt und du nichts parallelisierst oder parallelisieren kannst.
Modelltraining mit Pytorch, Tensorflow etc ist allerdings fast immer ein klarer Kandidat für eine NVIDIA GPU. In deinem Preissegment wohl die RTX 4090. (Siehe auch mal angehängtes Bild).

Wobei ich dir/euch auch ans Herz legen will mal zu schauen, ob für euch nicht eine Cloud Lösung besser/günstiger ist.
Auf AWS oder Azure gibt es virtuelle Maschinen als Spot Instanzen oder on Demand, die auf sowas ausgelegt sind. Da sollte man mal gegenrechnen, wie oft/lange eure Simulationen laufen und da ihr dort nur bezahlt, wenn da was läuft, schauen wie viele EUR das im Monat so sind. Und dann im Vergleich schauen wie viel ihr da rechnen könntet für 4000 EUR.
 

Anhänge

  • gpu_recommendations-ezgif.com-webp-to-jpg-converter.jpg
    gpu_recommendations-ezgif.com-webp-to-jpg-converter.jpg
    47,8 KB · Aufrufe: 48
Zuletzt bearbeitet: (Anhang vergessen :D)
leichti schrieb:
Und ob hier ggf. wirklich ein größerer Sprung zu erwarten ist?
Nein.
Genauer, größere sprünge gabs schon lange nicht mehr, es sind maximal immer sprüngchen von gen zu gen, wenn überhaupt manchmal bringt nur jeder 2te gen einen sprüngchen...

Also schlag dir ein Leistungswunder einfach aus dem Kopf. frage dich wenn du Leistung brauchst eher ob es parallelisierbar ist (ganz allgemein ausgedrückt)
 
Zurück
Oben