[Kaufberatung] Rechen Power - Mehrere GB verarbeiten

Klare

Enthusiast
Thread Starter
Mitglied seit
07.08.2005
Beiträge
891
Ort
Osnabrück
Hi zusammen,

ich beschäftige mich aktuell mit der Börse. Um zu erfahren, ob ein Handelsansatz in der Vergangenheit funktioniert hätte, bin ich dabei einen "Backtest" zu programmieren (Java).
Mein alter Rechner (7 jahre alt AMD AM2 mein ich) kommt da aber schnell an die Grenzen...
Deswegen mal die Frage, was ich mir für eine Rechen Power Maschine zulegen könnte und was diese kosten würde...

Um mal kurz zu zeigen um welche Daten es sich handelt. Ich lese die Daten aus csv Files aus. ~500mb pro Jahr. Nach dem Auslesen berechne ich einige Sachen und speichere dann das neue Objekt wieder runter. Dann bin ich bei ~300mb pro Monat(!), also bei 3,6GB pro Jahr. Der Backtest sollte mindestens über 10 Jahre laufen, damit dieser aussagekräftig ist --> 36GB
Diese 3,6GB pro Jahr muss ich dann erneut durch ein Programm laufen lassen...allein beim auslesen und speichern von 2 Monaten bin ich schnell bei über 2GB Ram.

Daher wäre vieeel Ram wohl nicht das schlechteste. Wirklich Multi-Threading fähig ist mein "Backtest" nicht (keine Ahnung in wie weit Java automatisch die Arbeit auf Kerne auslagert?).
Aber ich denke für mich wären eher weniger Kerne, aber dafür mehr Dampf pro Kern besser?

Ab wann steht Preis-Leistung nicht mehr im Verhältnis? Zwischen einem 1000€ und 2000€ System liegen sehr wahrscheinlich nicht mehr wie 5% Performance Steigerung?

Ich werde Daten auch ablegen auf der Festplatte in wie weit kann ich hier mit einer sehr schnellen Festplatte (SSD PCIe vielleicht?) Performance rausholen? Oder limitiert da schon wieder eher CPU und RAM? Wie viel schneller kann ich ein 300mb File auslesen? Da wirds keinen Nennenswerten Unterschied geben? Oder haben ich einen Vorteil wenn ich mit einem entsprechenden System 5GB als Datei ablege und diese dann auslese?

Ob mein "Backtest" jetzt 1h oder 2h dauert, ist nicht so wichtig. Aber ob er jetzt 1h oder 10h dauert!

Ich hoffe ihr versteht was ich meine, ich brauch jetzt nicht jede Sekunde an Geschwindigkeit es soll in einem vernünftigen Verhältnis stehen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Klingt jetzt eigentlich nicht besonders aufwändig für heutige Hardware.
Wenn es hoher Takt sein soll, nimm nen 7700k, dazu ne m.2 SSD und die 300mb sind nach ein paar Sekunden ausgelesen.


Gesendet von meinem FRD-L09 mit Tapatalk
 
Wenn du doch deinen Backtest selber programmierst, dann mache ihn doch gleich Multithreading fähig ? Da du im Zeitraum von 10 Jahren agierst kannst du das Programm so programmieren das es bis zu 128 oder mehr Kerne auslasten kann. Wenn du es nicht kannst, dann lass es Proggrammieren. Die zukünftigen CPU werden immer weiter auf mehrkerne gehen, dank AMD (Massenmarkt) schneller als wenn es Intel alleine machen würde.

Jetzt hast du die möglichkeiten also nutze sie.

Ansonsten den höchstgetakteten Intel 4Kerner kaufen (IPC höher als bei AMD). Das würde ich aber nicht machen sondern siehe oben, das Programm lieber auf Mehrkerne auslegen. Ob es unbedingt Java sein muss, weißt nur du.
 
Das mit dem Multithreading selber programmieren ist auf jeden Fall ein sehr guter Hinweis! Java fällt mir am leichtesten, da ich als Java Softwareentwickler arbeite.
Also dann doch eher mehr Kerne. Die 8 vom Ryzen reichen dann denk ich? Alles drüber geht wieder gut ins Geld!
Eine m.2 SSD wirds auch auf jeden Fall.

Danke für den Input!
 
Hat einer auf die schnelle eine Idee zu einem AMD System?
AMD Ryzen 7 1700
Board für moderatem OC (?)
32GB Speicher (?)
Samsung SSD 960 EVO 250GB
Grafikkarte 100-150€ oder ich nehm meine alte weiter, muss noch mal schauen was es für eine ist...

Die 8 Kerne könnte ich schon ganz passabel auslasten.
 
Ein CPU-Kühler wäre noch ganz gut, vor allem mit Hinblick auf OC. Thermalright Macho 120 z.B. , der große passt nicht mehr ins Carbide.

16GB Ram sollten so pi mal daumen reichen (16 Threads, maximal 16 500MB Quelldatei, maximal 16 300MB Objekte, die dann auf Platte ausgelagert werden, 1Gb Overhead , ein wenig was für den gammiligen GC, 1,5GB fürs OS. ) wobei du auch einfach die 2800er AEGIS nehmen kannst und richtung 3-3,2Ghz hochtakten: 16GB G.Skill Aegis DDR4-2800 DIMM CL17 Dual Kit - DDR4-2800 (PC4-22400U) - Hardware, Notebooks

Netzteil reicht je nach Grafikkarte auch die 400W Variante.
 
Wenn du doch deinen Backtest selber programmierst, dann mache ihn doch gleich Multithreading fähig ? Da du im Zeitraum von 10 Jahren agierst kannst du das Programm so programmieren das es bis zu 128 oder mehr Kerne auslasten kann. Wenn du es nicht kannst, dann lass es Proggrammieren.

Nachdem ich auch vermute, dass das ganze eher ein Softwareproblem ist, würde mich jetzt (nur kurz den Wikipedia-Artikel angeschaut) schon interessieren, wie du das ganze parallelisieren willst? Man simuliert ja quasi diskrete Zeitschritte, die jeweils auf dem vorherigen Ergebnis aufbauen?! – da kann ich mir jetzt adhoc keine Parallelisierungsstrategie dafür vorstellen. Anders sieht es aus, wenn es nur um das Datenaufbereiten geht und die Berechnungen gleichzeitig so komplex sind, dass die Rechenkapazität eines Kerns limitiert...
EDIT: mehrere Simulationen parallel laufen lassen und iwelche genetischen Algorithmen sind offensichtlich, aber dem TE wohl nicht bekannt.

@TE: man kann doch in der Regel Chunks einlesen und auch schreiben und somit über die Dateien iterieren, ohne sie ganz in den Speicher zu laden. Kann z.B. Pythons Pandas; ich bin sicher für Java gibt's da auch was und wenn es HDF ist... Wenn du für die finale Auswertung Zugriff auf alle Daten (36GB) im Speicher brauchst, machst du imho wirklich was falsch (genauso wie, wenn man als Softwareentwickler von einem Foren-Randommenschen auf die Möglichkeit Multithreading aufmerksam gemacht werden muss?).

Wenn du wirklich noch einen AM2-Rechner hast, kannst du allerdings unabhängig davon mal über eine Neuanschaffung nachdenken, nur versuche bitte nicht, sie auf dein Problem zu optimieren, solange du keine wirkliche Ahnung hast, wo es hängt...
 
Zuletzt bearbeitet:
Noch mal konkreter:
Ich habe eine .csv Datei mit End-Of-Day Daten, also pro Tag eine Zeile. Diese Datei ist nicht sonderlich groß. Von 2003 bis heute 8mb. Auf Basis dieser End-Of-Day Daten errechne ich mir für den darauf folgenden Tag Kurse an den ich einsteigen möchte. Auch diese Berechnung geht aktuell sehr flott.
Um zu überprüfen, wann ich zu welchen Kurs hätte einsteigen können, habe ich .csv Dateien im Tick Format, das bedeutet jeder festgestellte Kurs ist in dieser Datei. Das sind für einen Monat 90mb. Ich muss also bei jedem Tag die Ticks durchgehen und checken wann ich wie eingestiegen wäre. Jeder Tag ist für sich nicht einzelnd zu betrachten! Eine offene Postionen kann über weitere Tage/Wochen/Monaten offen sein. Ergo kann ich nicht jeden Tag seperat testen.
Ich könnte jedes Jahr einzelnd testen, wenn ich sagen würde, dass ich am Ende jedes Jahres alle Positionen schließe, aber das soll so nicht passieren.
Da fällt mir nur ein, dass ich das einlesen der .csv Dateien parallelisieren kann. Den eigentlichen Test wüsste ich nicht wie ich den parallelisieren könnte...

Mir ist schon klar, dass ich den test mit verschiedenen Parametern parallel laufen lassen könnte.
Von Chunks habe ich bis jetzt noch nichts gehört und werde es einmal googlen.
Selbstverständlich kann ich natürlich immer nur jeden Monat (Tick-Daten) einzelnd laden durchlaufen und dann den nächsten laden...
Aber auch da sollte doch ein AMD Ryzen 1700 mit 16GB oder 32GB und einer m.2 SSD deutlich schneller sein als ein AMD Phentom II X4 955 mit 8GB Ram und normaler SSD?
 
also du machst die Kaufentscheidung von den Tagesschlusskursen abhängig und suchst dann nach Einstiegsmöglichkeiten im Tag? Da könntest du ja z.B. die Daten innerhalb der Tage sortieren, um dann jeweils schnell den Einstiegspunkt zu finden. Vielleicht wäre das sogar ganz interessant das im RAM zu halten, wenn man das professionell macht...

Und ja, wie gesagt kann man sich, wenn man will, dort auch einen PC gönnen, wieviel RAM der braucht, solltest du aber selbst wissen, die RAM-Auslastung deines Programms zeigt dir der Task-Manager. Dass du eine m.2-SSD brauchst, bezweifle ich, es sei denn dein Algorithmus kann mehr als 500MB/s verarbeiten, sobald der wartet, kannst du ja im Hintergrund schon die nächste Datei laden (vorausgesetzt du hast genug Speicher).
 
Lese ich das richtig zwischen den Zeilen raus, dass du direkt mit/auf den .csv arbeitest? Tue das in ein array/matrix Mensch, viel platzsparender :)

Gesendet von meinem LG-D855 mit Tapatalk
 
Oder ganz einfach eine Datenstruktur, die dafür passt... Java object analogue to R data.frame - Stack Overflow GitHub - cardillo/joinery: Data frames for Java

Wie man erkennt, gibt's das nicht für Java, weil sich kaum jemand in den entsprechenden Communities selbiges antut (selbst .NET hat eine gesponserte OpenSource-Bibliothek). Klassischerweise wäre das eben ein Problem für R/pandas (Performancetuning für die Berechnung ist hier allerdings u.U. etwas schwieriger, wenn man allerdings bis jetzt handgestrickte Java-Lösungen für csv-Parsing und das Berechnen neuer Spalten verwendet (und trotzdem keine Ahnung hat, wo die Performanceprobleme liegen), dürfte das das kleinste Problem sein).
 
Ich habe mich jetzt noch mal intensiver mit dem Programmieren beschäftigt und es läuft alles schon wesentlich besser und schneller. Vielen Dank noch mal für den input.

Trotzdem möchte ich bald mein System ersetzen. Ein AM2 ist dann doch nicht mehr so modern...Hauptaugenmerk liegt bei dem System auf Datenverarbeitung mein Chart Programm frisst auch ordentlich Resourcen. Spielen tu ich nur noch selten und wenn CS 1.6. Kann also in meinen Augen vernachlässigt werden. Früher habe ich auch mal Videos geschnitten, vielleicht kommt das noch mal wieder...aber dann würde ich die Grafikkarte noch mal tauschen.
Mein Vorschlag:

AMD Ryzen 7 1700 Boxed
Noctua NH-D15 SE-AM4
ASUS Prime X370-Pro
G.Skill RipJaws V schwarz DIMM Kit 32GB, DDR4-3200
Samsung SSD 960 EVO 500GB, M.2
Gigabyte GeForce GTX 750 Ti Windforce 2X OC
Fractal Design Define R5 Black, schallgedämmt

Die CPU möchte ich übertakten. Soweit wie möglich unter vernünftiger VCore und Temp. Wie viel besser wäre eine AiO Wasserkühlung für die CPU? Habe nur mal kurz quer gelesen und was von 5°C im Vergleich zum Noctua gelesen...das lohnt dann ja nicht wirklich.
Kühler, Gehäuse und Ram sollten von der Höhe passen. Gehäuse bis 180mm.
Ram habe ich einfach mal einen ausgesucht...andere Vorschläge?
Grafikkarte habe ich auch blind ausgesucht. Brauche mind. 2 DVI und 1 HDMI.

Ein Netzteil fehlt mir noch...Vorschläge?

Lohnt es sich auf "nach Weihnachten" zu warten? Ram kennt ja nur eine Richtung...also eher nein? Der 8700K hätte eine bessere SingleCore Leistung, aber gerade im Chart Programm kann ich 2 weitere Kerne gut nutzen. Daher denke ich, dass der Ryzen am Besten passt. Andere Meinungen?

Bin über Feedback dankbar :-)
 
Thema back Testing:

Man optimiert auf die gelebte Vergangenheit. Ob es für die Zukunft auch funktioniert ist allerdings fraglich. Außerdem beeinflussen die tatsächlich aufgegebenen Orders an der Börse den Kurs mit. Das lässt sich nicht simulieren.
Ich hab so etwas auch einmal gemacht, wollte die Optionspreisänderungen bei Kurssprüngen des Basiswertes ausnutzen. Hat im Backtesting super funktioniert.

Nach dem live schalten hab ich's nach einem Monat wieder abgeschaltet. Hat nur Verluste produziert.

Man programmiert gegen die Profis in den großen Banken an. Ob man dieses Wettrennen wirklich gewinnen kann?
 
Moin,

auf wie viele Threads hast du den dein Programm jetzt ausgeweitet?

generell ist der Ryzen keine sclechte CPU, aber der NH-D15 unnötig. Die CPU wird, mit vernunft übertaktet selbst vom Boxed Kühler des 1700 noch ausreichend kühl gehhalten, ...

Klar etwas besser darfs sein, aber da würde ich eher Mugen 5 PCGH, EKL Olymp oder auch nru nen HR-02 Macho sehen, das reicht eigentlich auch.

GPU:
Die ist veraltet. Wenn die Leistungsklasse reicht:
Zotac GeForce GTX 1050 OC Preisvergleich Geizhals Deutschland Neuer und sparsamer, und mit 5 Jahren Garantie bei Registrierung ;)
Wenns etwas mehr sein darf:
Zotac GeForce GTX 1050 Ti OC Edition Preisvergleich Geizhals Deutschland

oder wirklich nru als iGP-Ersatz (was für CS1.6 wohl sogar langt):
Zotac GeForce GT 1030 Zone Edition Preisvergleich Geizhals Deutschland

Achja, wenn du auf Intel setzen wollen würdest, Intels CFL und i5 8400 oder i7 8700 sind ja auch (mehr oder weniger) verfügbar.
 
Thema back Testing:

Man optimiert auf die gelebte Vergangenheit. Ob es für die Zukunft auch funktioniert ist allerdings fraglich. Außerdem beeinflussen die tatsächlich aufgegebenen Orders an der Börse den Kurs mit. Das lässt sich nicht simulieren.
Ich hab so etwas auch einmal gemacht, wollte die Optionspreisänderungen bei Kurssprüngen des Basiswertes ausnutzen. Hat im Backtesting super funktioniert.

Nach dem live schalten hab ich's nach einem Monat wieder abgeschaltet. Hat nur Verluste produziert.

Man programmiert gegen die Profis in den großen Banken an. Ob man dieses Wettrennen wirklich gewinnen kann?

Curve-Fitting wenn man sich die Parameter raussucht, die in der Vergangenheit am Besten funktioniert haben. Wenn man allerdings die Vergangenheit mit einem großen Zeitraum abdeckt sollte man diesen Effekt minimieren können. Ich gehe her und werte alle einzelnen Ticks vom EUR/USD aus seit 01.01.2006 bis heute. Mal schauen was daraus wird...
Im Forexmarkt wird man mit einer Order den Markt auch nicht beeinflussen. Außer man kauft/verkauft über 100Mio in einer Order. Nicht mal da bin ich mir sicher, ob das Auswirkungen hat. Bei Aktien ist das natürlich anders!

Moin,

auf wie viele Threads hast du den dein Programm jetzt ausgeweitet?

generell ist der Ryzen keine sclechte CPU, aber der NH-D15 unnötig. Die CPU wird, mit vernunft übertaktet selbst vom Boxed Kühler des 1700 noch ausreichend kühl gehhalten, ...

Klar etwas besser darfs sein, aber da würde ich eher Mugen 5 PCGH, EKL Olymp oder auch nru nen HR-02 Macho sehen, das reicht eigentlich auch.

GPU:
Die ist veraltet. Wenn die Leistungsklasse reicht:
Zotac GeForce GTX 1050 OC Preisvergleich Geizhals Deutschland Neuer und sparsamer, und mit 5 Jahren Garantie bei Registrierung ;)
Wenns etwas mehr sein darf:
Zotac GeForce GTX 1050 Ti OC Edition Preisvergleich Geizhals Deutschland

oder wirklich nru als iGP-Ersatz (was für CS1.6 wohl sogar langt):
Zotac GeForce GT 1030 Zone Edition Preisvergleich Geizhals Deutschland

Achja, wenn du auf Intel setzen wollen würdest, Intels CFL und i5 8400 oder i7 8700 sind ja auch (mehr oder weniger) verfügbar.

Ich könnte mein Programm auf über 10 Threads ausweiten. 1 Jahr = 1 Thread. Zumindest beim generieren der Daten die ich brauche. Arbeite jetzt mit einer hsql-DB und lese dann aus den Tabellen die Daten aus und bereite die so auf, wie ich sie für den aktuellen Backtest brauche usw.
Der eigentliche backtest kann nicht parallelisiert werden. Natürlich kann ich den backtest mit unterschiedlichen Parametern mehrmals starten. Somit könnte ich den backtest mit unterschiedlichen Parametern so oft starten wie ich Kerne/Threads zur Verfügung habe.

Die Kühler schaue ich mir mal an. Danke für die Info.
GPU: Gibt es auch was mit mehreren Anschlüssen? ggf. kommt bald noch ein weiterer Bildschirm. Aktuell hängen 3 an meinem Rechner. Bei den GPU's sehe ich nur jeweils einen DisplayPort,DVI und HDMI.
 
Hm, also ist das 10 Thread Thema eher ein kleineres?
Wen dem so wäre, ist ggf. der i3 8350k auch interessant, da rel. günstig, ne iGP drin, usw.
Dafür kann man den auf Takt bringen.

Aber am Ende ist das nur ein "alter i5" ;)

GPUs gibte s auch mit mehr Anschlüssen, was möchtest du denn?
Einfach hier filtern ;)
PCIe mit Speichergr Geizhals Deutschland
Aber es sollte schon was aus der Nvidia 1000er Serie oder aus der AMD RX500er Serie sein.
 
Finde die Strix zwar was teuer für ne 1050 non-TI, aber klar, die geht ;)

Netzteil:
Eigentlich reichen dir auch 400W, darunter lohnt nicht, wegen der Qualität der NTs, aber eigentlich würde das ganze system wahrscheinlich auch mit 250W noch gut und mit Luft laufen ;)

Meine Empfehlungen

Gut und günstig sind:
be quiet! Pure Power 10 400W ATX 2.4 Preisvergleich Geizhals Deutschland (hier gibts auch noch eine Version mit CM)
Corsair Vengeance 400 400W ATX 2.4 Preisvergleich Geizhals Deutschland

Etwas besser:
Cougar GX-S450 450W ATX 2.4 Preisvergleich Geizhals Deutschland

Gehobene Mittelklasse:
be quiet! Straight Power 10 400W ATX 2.4 Preisvergleich Geizhals Deutschland
be quiet! Straight Power 10 500W ATX 2.4 Preisvergleich Geizhals Deutschland
be quiet! Straight Power 10-CM 500W ATX 2.4 Preisvergleich Geizhals Deutschland (das gibts mit CM nicht als 400er)
Cooler Master V-Series V550 550W ATX 2.31 Preisvergleich Geizhals Deutschland

Oberklasse:
be quiet! Dark Power Pro 11 550W ATX 2.4 Preisvergleich Geizhals Deutschland (gibts nicht kleiner)
Seasonic Prime Titanium 650W ATX 2.4 Preisvergleich Geizhals Deutschland

Ich würde entweder günstig beim GX-S bleiben, oder das V550 von Cooler Master nehmen, wenn ich dem PC was tolles gönnen will.
BeQuiets gehen immer (bezogen auf diese Liste), technisch sind die halt leicht unterschiedlich zwischen den Reihen. Die PurePower 10 sind aber nicht so extrem schlechter als das E10, das DPP11 ist aber ne andere Hausnummer. Trotzdem, für das E10 steht der Nachfolger quasi vor der Tür, das DPP11 dürfte nächstes Jahr auch nen DPP12 als Nachfolger bekommen.
 
Netzteile sind immer so eine Sache, da gibts einige Modelle mit denen man nichts falsch macht. Empfehlenswerte Netzteile 2017: Liste mit Daten und Preisen (Stand Oktober)
Die Übersicht hier fasst einige zusammen.
Schwierig finde ich eine richtige Rangliste zu definieren.

@[W2k]Shadow: Wie schlägt sich denn das Whisper M 450W bzw. das Super Flower Platinum King 450W im Vergleich zum Straight Power E10 und dem Cougar GX-S?

@TE: Welche GPU hast du denn aktuell? Ich finde für das, was du mit dem Rechner vor hast lohnt es sich nicht wirklich eine neue Einsteiger-Karte zu kaufen. Die ist in ein-zwei Jahren wieder so langsam, dass du für neue Spiele upgraden musst. Wenn die alte Karte noch geht würd ich die für CS1.6 wohl einfach übernehmen und erst bei tatsächlichem Bedarf eine neue Grafikkarte kaufen.
 
Das Whisper M würd eich etwa auf höhe des GX-S sehen mit dem Vorteil von modularen Kabeln, dafür n Müh lauter, wobei wir da von messbaren, aber nicht deutlich hörbaren unterschieden reden.

Das Platinum King ist einfach nur zu laut, sonst toll.

Das Thema ist echt komplex, ich diskutiere da auch mit Stefan, Dreirad, eBaster und einigen anderen hier im Luxx, im CB und im PCGHX gern mal drüber ;)

Generell sind da auch manchmal Prioritäten das, was die Unterschiede macht, sprich, nicht für jeden ist die Rangliste gleich.
 
@TE: Welche GPU hast du denn aktuell? Ich finde für das, was du mit dem Rechner vor hast lohnt es sich nicht wirklich eine neue Einsteiger-Karte zu kaufen. Die ist in ein-zwei Jahren wieder so langsam, dass du für neue Spiele upgraden musst. Wenn die alte Karte noch geht würd ich die für CS1.6 wohl einfach übernehmen und erst bei tatsächlichem Bedarf eine neue Grafikkarte kaufen.

Eine Radeon HD 5700 keine Ahnung welche genau :fresse:
GPU habe ich eigentlich nur mit ins Auge gefasst, weil ich dann ein komplettes 2. System hätte...sollte als am Anfang das neue System nicht funktionieren (warum auch immer) kann ich meinen anderen Rechner anstöpseln und gut.
Andersherum müsst ich so ja auch nur die GPU umstecken...was auch in 5min erledigt wäre...
Und CS 1.6 spiel ich vielleicht 2 Stunden die Woche...wenn überhaupt. Sonst spiel ich gar nix mehr und werde auch in Zukunft keine aktuellen Spiele spielen.
Dann behalte ich die GPU glaub ich.

Danke für die Infos fürs Netzteil.
 
Ah, da wäre ne gebrauchte GTX 750 1G schon gut ;)
Die 5700er sind echt recht schwach ;)
 
Naja, CS 1.6 läuft ja so ziemlich auf jeder Grafikkarte ganz gut.
Sofern du nicht das letzte bisschen Strom sparen möchtest würd ich die übernehmen, bis die Karte dich limitiert. Sei es in Spielen oder in Codecs für Videowiedergabe, die sie nicht mehr unterstützt.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh