Hallo Andreas,
das Hauptproblem war, dass ich als User zunächst keine Erlaubnis hatte die Datei auszuführen. Eine Zuweisung der Erlaubnis über chmod hat das Problem behoben. Jetzt kann ich meine Modelle über den Cluster laufen lassen. Die Modelle brauchen momentan unter meinen Einstellungen ähnlich viel Zeit, wie auf meinem normalen Computer. Meine Frage daher, ob Ihr Erfahrungen habt, welche Einstellungsparameter am effektivsten die Berechnungsgeschwindigkeit von Delphin reduzieren. An folgenden Parametern hatte ich den Tag über herumgespielt:
1) #SBATCH --nodes=1
Bei der Ausführung eines Szenarios mit dem DelphinSolver, konnte ich diesen Parameter (Anzahl der zu verwendenden "Computer") nicht erhöhen. Eine Aufsplittung des Szenarios auf mehrere nodes ist nicht möglich, richtig?
2)
#SBATCH --ntasks=1
Nach der Erhöhung der ntasks (Prozessoranzahl), waren einige Ausgabendateien fehlerhaft und nicht nutzbar. Eine Veränderung dieses Parameters sollte somit wahrscheinlich nicht erfolgen, richtig?
3)
#SBATCH --mem=16G
Da die Berechnung eines Modells vom Prozessor bestimmt ist, kann erwartet werden, dass eine Veränderung des Arbeitsspeichers keinen Einfluss auf die Berechnungsgeschwindigkeit haben wird, korrekt?
4)
#SBATCH --cpus-per-task=10
Die verwendeten Kerne eines Prozessors haben teilweise zu einer leichten Reduzierung der Berechnungszeit geführt. Eine Frage die sich mir jedoch diesbezüglich stellt ist, ob die Anzahl der Kerne des Prozessors gleich der verwendeten Threads des Solvers gesetzt werden müssen?
Die generelle Frage ist also zusammenfassend, welche Einstellungsparameter von den oben genannten (oder auch von jenen, die ich hier nicht erwähnt habe), verändert werden können, um eine Reduzierung der Berechnungsgeschwindigkeit zu erreichen. Falls Ihr da Erfahrungen habt, die ihr teilen könntet, wäre ich euch sehr dankbar. Solltet ihr jedoch keine Anagben dazu machen können, bitte ich um Entschuldigung (auch für die mal wieder etwas längere Nachricht).
LG,
Markus.
Von Windows zu Linux
Moderatoren: ghorwin, fechner, ruisinger
Re: Von Windows zu Linux
Hi,
da Clusterkonfigurationen nicht überall einheitlich sind, kann ich bestenfalls Vermutungen anstellen.
1) #SBATCH --nodes=1
Drückt wahrscheinlich aus, wie viele verteilte Serverracks verwendet werden sollen. Sollte immer 1 sein (siehe Erläuterung für 2).
2) #SBATCH --ntasks=1
Damit wird ausgedrückt, wieviele Prozesse mit den gleichen Kommandozeilenoptionen aufgerufen werden. Hier muss bei DELPHIN immer 1 verwendet werden, da DELPHIN keine MPI-Parallelisierung verwendet. Parallele Tasks hieße, es laufen mehrere DELPHIN Simulationen gleichzeitig mit der gleichen Projektdatei und schreiben wild durcheinander in die gleichen Ausgabedateien.
3) #SBATCH --mem=16G
Reicht vollkommen. DELPHIN ist selbst für größere 3D Modelle nicht sehr speicherhungrig. Allerdings sollte man auf dem Cluster niemals direkte LES-Löser wie Band verwenden, d.h. immer GMRES + ILU oder BiCGStab + ILU.
4) #SBATCH --cpus-per-task=10
Das legt vermutlich fest, wie viele parallele Threads für einen Prozess zur Verfügung stehen. Diese Anzahl sollte gleich dem Kommandozeilenargument -p sein, also
--cpus-per-task=32
DelphinSolver -p=32
Damit werden 32 Threads verwendet.
Empfehlung:
- 32-Threads (ggfs. 64, ausprobieren, ob eine weitere Erhöhung was bringt)
- GMRES, Max-KrylovDim=35
- ILU Vorkonditionierer
Hinterher die Solverstatistiken auf viele Konverenzfehler kontrollieren.
-Andreas
da Clusterkonfigurationen nicht überall einheitlich sind, kann ich bestenfalls Vermutungen anstellen.
1) #SBATCH --nodes=1
Drückt wahrscheinlich aus, wie viele verteilte Serverracks verwendet werden sollen. Sollte immer 1 sein (siehe Erläuterung für 2).
2) #SBATCH --ntasks=1
Damit wird ausgedrückt, wieviele Prozesse mit den gleichen Kommandozeilenoptionen aufgerufen werden. Hier muss bei DELPHIN immer 1 verwendet werden, da DELPHIN keine MPI-Parallelisierung verwendet. Parallele Tasks hieße, es laufen mehrere DELPHIN Simulationen gleichzeitig mit der gleichen Projektdatei und schreiben wild durcheinander in die gleichen Ausgabedateien.
3) #SBATCH --mem=16G
Reicht vollkommen. DELPHIN ist selbst für größere 3D Modelle nicht sehr speicherhungrig. Allerdings sollte man auf dem Cluster niemals direkte LES-Löser wie Band verwenden, d.h. immer GMRES + ILU oder BiCGStab + ILU.
4) #SBATCH --cpus-per-task=10
Das legt vermutlich fest, wie viele parallele Threads für einen Prozess zur Verfügung stehen. Diese Anzahl sollte gleich dem Kommandozeilenargument -p sein, also
--cpus-per-task=32
DelphinSolver -p=32
Damit werden 32 Threads verwendet.
Empfehlung:
- 32-Threads (ggfs. 64, ausprobieren, ob eine weitere Erhöhung was bringt)
- GMRES, Max-KrylovDim=35
- ILU Vorkonditionierer
Hinterher die Solverstatistiken auf viele Konverenzfehler kontrollieren.
-Andreas