Hardware Beratung für Statistiker

newbie0815

Neuling
Thread Starter
Mitglied seit
11.09.2017
Beiträge
2
Ort
Stuttgart
Hi, ich habe mich gerade erst registriert, mein Name spricht also Bände und ich bitte bereits jetzt um Verzeihung :wink:

Ich hätte gern eine realistische Einschätzung zur Verhältnismäßigkeit unserer derzeitigen "Ausstattung" (Hardware) bezogen auf das, was sie leisten muss:

Wir sind zu dritt (alles Statistiker mit sehr guten R-Kenntnissen) und bekommen pro Jahr etwa 5 GB Rohdaten aus drei verschienenden Quellen rein. Diese Daten müssen aufbereitet, geprüft und validiert, anschließend miteinander verknüpft und dann parallel analysiert werden. Das geschieht mit Hilfe von ca. 300 eher komplexen und ineinander verschachtelten R-Skripten (die Anzahl der Code-Zeilen variiert dabei zwischen 1 und 1233). Wir produzieren etwa 30 GB an R-Workspace-Dateien, 3 GB an log-files, 30 GB an internem Output (hauptsächlich Tabellen und txt) und 8 GB an tex und pdf Output.

Bisher läuft das Ganze auf einem (virtuellen) Windows Server 2012 R2, Intel Xeon CPU E5-2420 v2 @ 2.20GHz (two sockets, 20 virtual nodes) mit 56 GB RAM. Wir benötigen ca. 20 GB, 10 GB bzw. 15 GB an RAM, um die Jahresdaten aus den drei Quellen zu prozessieren, und stoßen dabei regelmäßig an Grenzen.

Eine Cluster-Lösung zu wählen, wie es in einem universitären Umfeld Gang und Gäbe ist, hieße hier wohl mit Kanonen auf Spatzen zu schießen. Aber gibt es nicht vielleicht eine Alternative dazwischen, die unseren Ansprüchen gerecht wird und dabei bezahlbar bleibt?

Im schlimmsten Fall sind wir - aus Gründen :rolleyes: - bei der Wahl eines neuen Servers auf Windows-Lösungen eingeschränkt, das nur am Rande...

Ich bedanke mich für schon jetzt für jeden Kommentar und jede Meinung!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ein E5-2420 v2 reißt heutzutage natürlich keine Bäume mehr aus. Das Board ist mit 1 oder 2 E5 bestückt?

Bei der Beurteilung wäre es auch interessant zu wissen wie gut die "300 eher komplexen und ineinander verschachtelten R-Skripten " parallelisieren. Wenn bei dieser Frage die Antwort mit gut bis sehr gut ausfällt wäre der Threadripper 1950x sicher recht reizvoll. Bringt rund 60-70% mehr Leistung als der aktuelle E5-2420v2 und schlägt mit rund 2000€ für CPU+Board+Speicher (64GB) zur Buche. Ansonsten könnte man auch die AMD Epyc abwarten. Die gibt es dann mit bis zu 32 Kernen.

Wenn die Parallelisierung eher schlecht ist könnte auch ein 7700k ganz brauchbar sein. Dieser hat zwar im Vergleich zum E5 nur 4 statt 6 Threads (+SMT), bringt dabei aber Gesamt rund 30% mehr Performance als ein E5-2420v2. Den 7700k gibts mit CPU+Board+Speicher (64GB) für rund 850-900€
 
Zuletzt bearbeitet:
Ich kenne ein paar Statistik-Programme (IBM SPSS und SAS von SAS).
Im Firmenumfeld wird damit meist von mehr als 3 Usern auf schwächeren Servern gearbeitet und auch noch mit grösseren Datensätzen.

Ich habe vor einiger Zeit mal so einen SAS Server installiert, 4 Virtuelle Cores (Xeon E5 2660 V1 glaube ich) 16GB RAM und schnelles SSD Storage.

Viele Statistik-Software arbeitet mit den Daten vorallem auf der Festplatte.
Das kommt ein wenig davon, das die Daten schnell einmal grösser sind als der RAM. Daher bemühen sich solche Programme nicht mal richtig den komplett in den RAM zu lagern.

Ob eure Programme in der Sprache R programmiert auf die Hardware und paralellisierung skalieren wissen wir nicht.

Fakt ist, das aktuelle System ist für übliche Arbeiten mit Statistiken grosszügig dimensioniert.
Der von mir eingerichtete Server ist für 5 User, die Datenmengen sind etwa doppelt so gross.
 
Zuletzt bearbeitet:
Danke für Deine Meinung. Was sind denn in Deinen Augen
übliche Arbeiten mit Statistiken
? Ich denke, da gehen die Meinungen und Vorstellungen sicher auch sehr weit auseinander.

Mit SPSS ist die Art der standardisierten Auswertung, wie wir sie benötigen, definitiv nicht möglich. Deshalb R und ja, R braucht viel RAM. Mit SAS kenne ich mich leider nicht so gut aus, wird auch bei uns nicht verwendet.
 
Naja Statisk-Arbeiten im Bereich für Daten-erhebung über Bevölkerung und Haushalte (auf Bundes und Kommunaler Ebene).
Schwierig zu sagen was im Detail damit gemacht wird, ich bin da zu wenig tief in der Materie um das kompetent beschreiben zu können.

Ich weis nur dass dort auch Auswertungen mit Datensätzen 5 - ca. 30 GB gemacht werden.
Mehr auch nicht. Aber wenn der Hersteller einer solchen Software Vorgaben macht die auch tatsächlich ausreichen - so ist das für mich der Richtwert.

Anstatt ins blaue zu fragen wäre eine GENAUE Analyse des Ressourcen-Verbrauchs eures Servers notwendig.
So findet ihr auch raus ob der RAM, HDD, CPU oder was auch immer bremst. Das kann dir kein Forum einfach mal so beantworten.
Zumal das Forum hier nicht von und für Statistiker ist - statistisch gesehen zumindest :cool:
 
Zuletzt bearbeitet:
Meine Empfehlung ist auch, erstmal die Skalierung abzuchecken. Wie viele Cpu Kerne/Threads lastet ihr denn überhaupt parallel aus? Tendenziell takten Cpus mit weniger Kernen höher, weshalb die Wahl einer Cpu mit genau der Kernanzahl die ihr benötigt durchaus sinnvoll sein kann. So bekommt ihr maximalen Takt/Leistung pro genutztem Kern raus.

Dann würde ich prüfen wie schnell die Daten gelesen/geschrieben werden müssen. Darüber kann man dann eine Entscheidung zugunsten oder gegen eine M.2 SSD abwägen. Die M.2 SSD schreibt erheblich schneller als eine normale SATA SSD. Auch könnte man über das doppelte an Ram und eine große Ramdisk nachdenken, falls die Skripte sich nicht entsprechend anpassen lassen. So würde alles im Ram stattfinden und hinterher nur noch das Ergebnis auf die Festplatte kopiert werden.

Zwei gute Empfehlungen für schlechte Skalierung über die Kerne (i7 7700K) und gute Skalierung (Threadripper oder RyZen 1800x) wurden ja schon genannt. Eine weitere Alternative wäre der bald erscheinende 8700K, der quasi ein 7700K mit 2 Kernen extra (also 6 Kerne/12 Threads statt 4 Kerne/8 Threads) ist.
 
Naja, bei professionellen Berechnungen sollte ECC Pflicht sein. Damit ist Consumer Hardware raus.
@ newbie0815
Schau doch mal im Task Manager bei der Arbeit nach, was begrenzt. Ist die CPU Last auf (fast) 100% oder sind die Plattenzugriffe am Anschlag oder ist der RAM voll? Ggf. könnte man den alten Rechner aufrüsten mit RAM oder schnelleren SSDs. Oder dann halt nen Rechner zusammenstellen, der das besser kann.
Oft sind Skripte aber auch nicht gerade performant. Dann könnte sich eine Umsetzung z.B. in C++ lohnen. Ist aber viel Arbeit.
 
Eine Cluster-Lösung zu wählen, wie es in einem universitären Umfeld Gang und Gäbe ist, hieße hier wohl mit Kanonen auf Spatzen zu schießen. Aber gibt es nicht vielleicht eine Alternative dazwischen, die unseren Ansprüchen gerecht wird und dabei bezahlbar bleibt?
Ein Cluster ist ein Konzept und auch in der Größe skalierbar. Das Minimum wäre ein Server (NFS, Verwaltungsserver, Provisioning, Loadleveler etc.) und die Computenodes. Für letztere kann man relativ preiswerte Xeon E3 Blades nehmen, die schlucken ja auch bis zu 64GB RAM. Passende Hardware gibt es von SuperMicro. Als Netz sollte ein billiges GbE ausreichend, bei Bedarf sollte auch 10GbE gehen. Infiniband oder Omnipath ist nicht notwendig, solange kein MPI genutzt werden soll. Aber dafür müsstet ihr die Software ohnehin umschreiben.

Die wichtigste Frage ist: wie skaliert die Software? Trivial d.h. könnt ihr hunderte gleiche Jobs parallel laufen lassen?
 
Ohne die Skalierung und realen Anforderungen zu kennen, lohnt sich auch kein Cluster.
Man kann nicht unendlich aufteilen und parallelisieren. Auch wenn man ein Cluster-Konzept gut skalieren kann, muss es das nicht unbedingt tun.

Man kann sich aber wohl bei den üblichen Hersteller wie Dell, HP, IBM, Fujitsu und co. Demogeräte holen bevor man blind käuft.

Vielleicht lohnt es sich sogar, wenn jeder User einfach eine performante Workstation hat und jeder selber sein Ding rechnet. Kommt aber drauf an ob alle Mitarbeiter am gleichen arbeiten oder nicht.
 
... und stoßen dabei regelmäßig an Grenzen.
Grenzen welcher Art? Rechenleistung? Rechenleistung pro Thread? I/O? Speicherzugriff? Man muss erstmal analysieren, was genau die Sache ausbremst, also welche die beschränkende(n) Ressource(n) ist/sind, die einen schnelleren Ablauf der Berechnung verhindern.

Die Analyse der Last könnte dazu führen, dass sich durch kleine Änderungen am Algorithmus der Berechnungen dramatische Zeitgewinne erzielen lassen und gar keine neue Hardware nötig ist. Das ist der Normalfall, wenn man vorher nichts außer "es ist zu langsam" über seine Berechnung wusste.
 
Zuletzt bearbeitet:
Nach meinem Verständnis müsst ihr diese Statistiken jetzt einmalig analysieren.

Was spricht dann dagegen sich entsprechende "Hardware" virtuell on demand bei Amazon o.Ä. zu mieten für die Analysierung und dann die Ergebnisse abzurufen?
So habt ihr nicht veraltete Hardware und könnt euch schnell anderen Themen widmen.
Oder hab ich da was falsch verstanden?
 

Ähnliche Themen

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