Peter_2498
Lieutenant
- Registriert
- Apr. 2018
- Beiträge
- 618
Ich arbeite gerade an einem Projekt an der Uni, wo ich bald meinen Python-Code auf so einem Knoten laufen lassen kann, weil mein PC viel zu langsam für die Berechnungen ist.
Ich hab bisher noch nie mit sowas gearbeitet und ich bin gerade dabei mich mit dem ganzen Job-Scheduling vertraut zu machen.
Bisher hab ich eigentlich immer alle Berechnungen über ein einziges Skript gestartet. Jetzt sind aber die einzelnen Berechnungen viel viel aufwendiger und von einem wird auch erwartet, dass man die Ressourcen vom Cluster effizient nutzt, was ich absolut verstehen kann. Man will ja nicht, dass eine 96 Kerne CPU von einem Programm blockiert wird, welches 8 Kerne nutzt..
Sehe ich das jetzt richtig, dass ich eigentlich mein ganzes Skript möglichst in unabhängige Einzelteile zerlegen muss, damit ich diese über ein Job-Array submitten kann und diese quasi gleichzeitig abgearbeitet werden und damit mehr Kerne nutzen?
Im Job-Skript muss ich dann wahrscheinlich irgendwo angeben, wann welche Python-Skripte laufen können. Wenn skript2.py die Ergebnisse von skript1.py benötigt, dann muss man da ja aufpassen.
Sehe ich das auch richtig, dass man in dieser Situation einfach viel mehr Ergebnisse speichern muss, da ja jetzt die einzelnen Berechnungen in unterschiedlichen Prozessen durchgeführt werden?
myScript1.py -> myScript1.out -> myScript3.py ->...
myScript2.py -> myScript2.out -> myScript4.py ->...
Wie oben erwähnt, lerne ich gerade Slurm erst kennen und ich bin ich gerade dabei mir zu überlegen, wie ich meinen Code umschreibe, um die CPUs/GPUs maximal gut zu nutzen und ich wollte nur wissen, ob das, wie ich mir das so vorstelle, überhaupt so ungefähr richtig ist. Es geht mir nur ums Big-Picture. Wie man das alles dann im Detail Slurm beibringt, das sollte ich selbst hinkriegen.
Ich hab bisher noch nie mit sowas gearbeitet und ich bin gerade dabei mich mit dem ganzen Job-Scheduling vertraut zu machen.
Bisher hab ich eigentlich immer alle Berechnungen über ein einziges Skript gestartet. Jetzt sind aber die einzelnen Berechnungen viel viel aufwendiger und von einem wird auch erwartet, dass man die Ressourcen vom Cluster effizient nutzt, was ich absolut verstehen kann. Man will ja nicht, dass eine 96 Kerne CPU von einem Programm blockiert wird, welches 8 Kerne nutzt..
Sehe ich das jetzt richtig, dass ich eigentlich mein ganzes Skript möglichst in unabhängige Einzelteile zerlegen muss, damit ich diese über ein Job-Array submitten kann und diese quasi gleichzeitig abgearbeitet werden und damit mehr Kerne nutzen?
Im Job-Skript muss ich dann wahrscheinlich irgendwo angeben, wann welche Python-Skripte laufen können. Wenn skript2.py die Ergebnisse von skript1.py benötigt, dann muss man da ja aufpassen.
Sehe ich das auch richtig, dass man in dieser Situation einfach viel mehr Ergebnisse speichern muss, da ja jetzt die einzelnen Berechnungen in unterschiedlichen Prozessen durchgeführt werden?
myScript1.py -> myScript1.out -> myScript3.py ->...
myScript2.py -> myScript2.out -> myScript4.py ->...
Wie oben erwähnt, lerne ich gerade Slurm erst kennen und ich bin ich gerade dabei mir zu überlegen, wie ich meinen Code umschreibe, um die CPUs/GPUs maximal gut zu nutzen und ich wollte nur wissen, ob das, wie ich mir das so vorstelle, überhaupt so ungefähr richtig ist. Es geht mir nur ums Big-Picture. Wie man das alles dann im Detail Slurm beibringt, das sollte ich selbst hinkriegen.
Zuletzt bearbeitet: