Ich arbeitete an Projekten, die oft als "mittlere Daten" bezeichnet werden, und konnte meinen Code (hauptsächlich für die Modellierung und Vorhersage in Python) auf einem einzelnen System mit 4 bis 32 Kernen parallelisieren. Jetzt möchte ich auf Cluster unter EC2 hochskalieren (wahrscheinlich mit StarCluster / IPython, aber offen für andere Vorschläge) und bin ratlos darüber, wie die Verteilung der Arbeit auf Kerne auf eine Instanz im Vergleich zu Instanzen auf einem Cluster abgestimmt werden kann.
Ist es überhaupt praktisch, instanz- und kernübergreifend zu parallelisieren? Wenn ja, kann jemand einen kurzen Überblick über die Vor- und Nachteile der Ausführung vieler Instanzen mit jeweils wenigen Kernen im Vergleich zu einigen Instanzen mit vielen Kernen geben? Gibt es eine Faustregel für die Auswahl des richtigen Verhältnisses von Instanzen zu Kernen pro Instanz?
Bandbreite und Arbeitsspeicher sind in meinen Projekten keine trivialen Probleme, aber es ist leicht zu erkennen, wann dies die Engpässe sind und sich neu einstellen. Ich würde mir vorstellen, dass es viel schwieriger ist, die richtige Mischung von Kernen mit Instanzen ohne wiederholte Tests zu vergleichen, und meine Projekte variieren zu sehr, als dass ein einzelner Test auf alle Umstände anwendbar wäre. Vielen Dank im Voraus, und wenn ich es gerade nicht geschafft habe, diese Seite richtig zu googeln, können Sie mich gerne auf die richtige Antwort verweisen!