Anwendungsbereich: Finite Elemente
Beschreibung:
STAR-CD ist ein leistungsfähiges Finite-Volumen-Programmpaket zur Lösung von strömungsmechanischen Problemen aus dem CFD- (Computational Fluid Dynamics) Anwendungsbereich. (Der Name STAR steht für "Simulation of Turbulent flow in Arbitrary Regions".)
Verfügbar auf:
Installierte Versionen:
Betreuer: Gerd Brand
Lizenzmodell: Uni Hannover Institutsrechner
1. Allgemeines
2. Funktionalität
3. Installation auf den RRZN-Computeservern
4. Benutzung von STAR-CD auf den RRZN-Computeservern
4.1 Interaktive Nutzung des Prä-/Postprozessors PROSTAR mit der GUI-Version
4.2 Interaktive Nutzung des Präprozessors PROSTAR mit der Kommandozeilen-Version
4.3 Interaktive Nutzung des Lösers STAR im seriellen Modus
4.4 Interaktive Nutzung des Postprozessors PROSTAR mit der Kommandozeilen-Version
4.5 Aufruf des Lösers STAR im Batchbetrieb (seriell oder parallel)
4.6 Aufruf des Lösers STAR im Batchbetrieb mit User Coding
5. Dokumentation und Beispiele
Die Programmentwicklung und der Vertrieb von STAR-CD erfolgt über die CD-adapco Gruppe, siehe die Webseite http://www.cd-adapco.com/.
Hinweis:
Diese Dokumentation beschreibt die Besonderheiten der Installation und der Verwendung von STAR-CD auf den RRZN-Computeservern. Die Nutzung von STAR-CD auf dem HLRN-Rechner wird dagegen auf den Webseiten des HLRN beschrieben (siehe http://www.hlrn.de/). Für eine ausführlichere Einführung in STAR-CD sei auf die Web-Seite von CD-adapco verwiesen.
STAR-CD ist ein weit verbreitetes Software-Paket, mit dem temperaturabhängige Flüssigkeitsströmungen berechnet und visualisiert werden können. Das Paket kann in vielen Bereichen zur Strömungsanalyse eingesetzt werden, z.B.
- in der Automobil Industrie
- bei Turbo-Maschinen
- in der Luftfahrt Industrie
- bei Chemischen Prozessen
- in der Umwelttechnik und im Bauwerk
- in der Biomedizin.
Eine ausführliche Beschreibung der Modellierungsfähigkeiten und eine Anzahl von Tutorialbeispielen kann man in der Online Dokumentation finden (siehe Punkt 5 "Dokumentation und Beispiele"). Für weitere Informationen über die Merkmale des Paketes und über Beispiele aus der Industrie siehe die Web-Seite von CD-adapco (siehe oben).
STAR-CD enthält neben dem Löser STAR einen integrierten Prä- und Postprozessor PROSTAR sowie Schnittstellen zu externen Prä- und Postprozessoren. PROSTAR erlaubt grafische Ausgaben über eine grafische Nutzer-Schnittstelle (GUI) mit Online Unterstützung. Es ist ein kombiniertes Kommando- und Menü-gesteuertes Programm.
Die derzeit auf den RRZN-Computeservern installierten STAR-CD Versionen und die Produkte sind:
STAR-CD auf den RRZN-Computeservern ist ein 64-Bit Programm.
Die aktuelle Lizenz beinhaltet (für RRZN/HLRN)
Die einzelnen Softwarepakete auf den RRZN-Computeservernr werden über Module benutzbar gemacht. Mit dem module-Befehl werden Umgebungen für spezifische Softwarepakete eingerichtet oder auch wieder entfernt. Eine Übersicht ergibt das Kommando module avail . Für mehr Informationen über das Module-Konzept auf dem Cluster sei auf die Seite Module verwiesen.
Das Paket STAR-CD steht daher nach dem Kommando
module load starcd
zur Benutzung zur Verfügung.
Wenn Sie planen, STAR-CD regelmäßig zu nutzen, sollten Sie die Zeile module load starcd zu Ihrem Benutzerprofil (.profile, .bashrc oder .kshrc) hinzufügen.
Im Allgemeinen kann der STAR-CD Löser auf verschiedene Art und Weise verwendet werden: interaktiv (Dialogbetrieb) oder im Batch, seriell oder parallel. Der Prä-/Postprozessor PROSTAR kann mit einer grafischen Nutzer-Schnittstelle (GUI) oder mit einer Kommandozeilen-Schnittstelle genutzt werden.
Die nächsten Abschnitte beschreiben die empfohlenen Vorgehensweisen für den Zugriff auf STAR-CD unter X11.
Interaktives Arbeiten ist auf orac oder über interaktives Batch möglich.
Setzen der Umgebung:
module load starcd
Evtl. ist es zusätzlich nötig, auf Ihrer Workstation xhost auf orac.rrzn.uni-hannover.de zu setzen und auf Orac selbst die DISPLAY Variable auf die Adresse Ihrer Workstation.
Aufruf der GUI-Version des Prä-/Postprozessors:
prostar xm
Setzen der Umgebung:
module load starcd
Aufruf der Kommandozeilen-Version des Präprozessors:
prostar x
Sie können die Kommandozeilen-Version auch mit einer Kommandodatei als Eingabedatei (hier: Pre.in) aufrufen:
prostar x < Pre.in
Hier ist ein Beispiel für eine kleine Kommandodatei. Wir setzen dabei voraus, dass eine Präprozessor-Eingabedatei namens prep.inp existiert, die eingelesen wird:
tut
cursor file
ifile prep
quit save
Die Berechnung mit dem Löser STAR wird durch den einfachen Aufruf von star interaktiv und seriell auf dem Login-Server Orac ausgeführt:
star
Bitte rufen Sie den Löser in dieser Form nur für kleine Testfälle auf, die wenige Ein-/Ausgabedaten und nur wenig Rechenzeit benötigen! Für größere Fälle wird dagegen die Vorgehensweise in dem Punkt 4.5 empfohlen, d.h. die Nutzung des Lösers im Batchbetrieb auf den Rechenknoten des Clusters.
Die Optionen, die beim star-Aufruf angegeben werden können, bekommen Sie durch:
star -help
Beispielsweise sollte die Option -dp für doppeltgenaue Rechnungen angegeben werden.
Nach dem Lösungsschritt in 4.3 können Sie die Ergebnisse mit dem Postprozessor PROSTAR nachbearbeiten. Sie können die Kommandozeilen-Version wiederum auch mit einer Kommandodatei als Eingabedatei (hier: Post.in) aufrufen:
prostar x < Post.in
Hier ist ein Beispiel für eine kleine Kommandodatei. Wir setzen dabei voraus, dass eine Postprozessor-Eingabedatei namens post.inp existiert, die eingelesen wird:
tut
y
y
cursor file
ifile post
quit save
Berechnungen mit dem Löser STAR sollte nur für kleine Testfälle oder Beispiele interaktiv auf dem Login-Knoten des Clusters ausgeführt werden. Für größere Fälle ist dagegen die Nutzung des Lösers auf den Rechenknoten des Clusters erforderlich. Diese Rechenknoten sind nicht direkt erreichbar, sondern nur im Batchbetrieb. Hier wird beschrieben, wie der Löser im seriellen Modus oder im parallelen Modus auf den Rechenknoten innerhalb eines Batch-Jobs aufgerufen werden kann. Zur Abgabe von Batch-Jobs steht auf dem Cluster das Batchsystem PBS zur Verfügung.
1. Bereiten Sie ein ausführbares Shellskript (d.h. ein (PBS-)Batchskript) vor, das PBS-Kommandos und den Aufruf von STAR enthält. Am Anfang muss die Umgebung wiederum durch module load starcd gesetzt werden.
2. Schicken Sie vom Login-Knoten aus das Batchskript (z.B. namens jobscript) an das Batchsystem ab:
qsub jobscript
3. Eine Statusabfrage für diesen Job und andere ist möglich mit dem Kommando:
qstat -a
Für weitere Informationen über nützliche PBS-Kommandos und Einstellungen sei auf die Webseite des Batchsystems verwiesen.
Der serielle Modus kann für mittelgroße Beispiele oder Testfälle verwendet werden. Punkt 4.5.1 zeigt ein Beispiel für ein entsprechendes (PBS-)Batchskript. Bei größeren Testfällen ist dagegen das Rechnen im parallelen Modus (d.h. auf mehreren Prozessoren gleichzeitig) besser geeignet, um schneller ein Ergebnis zu erhalten. Die Berechnungszeit verkürzt sich dabei im Idealfall proportional zur Anzahl der beteiligten Prozessoren. Für die parallele Berechnung erzeugt der Löser STAR automatisch eine Gebietszerlegung, wobei die Anzahl der Teilgebiete gleich der Anzahl der parallelen Prozesse ist und jeder Prozess dann nur noch auf einem Teilgebiet rechnet und mit den anderen Prozessen benötigte Daten austauscht. Dabei ist zu beachten, dass diese Teilgebiete nicht zu klein gewählt werden, da sonst die erwartete Verkürzung der Berechnungszeit im parallelen Modus gar nicht erreicht wird. Als Empfehlung wird gegeben: Die Teilgebiete sollten für das parallele Rechnen pro Prozess jeweils minimal 50.000 Zellen (Punkte) enthalten. Punkt 4.5.2 beschreibt das Rechnen mit dem Löser STAR im parallelen Modus auf den Rechenknoten des Clusters.
Bereiten Sie ein ausführbares (SGE-)Batchskript vor, das vom Login-Knoten aus an die SGE mit dem Kommando qsub abgeschickt wird.
Beispiel für ein Batchskript, wenn STAR auf einem Knoten seriell ablaufen soll:
#$ -S /bin/ksh
#$ -N starcdtest
#$ -j y
#$ -cwd
#$ -l h_cpu=00:30:00
module load starcd
star
Die Optionen, die beim star-Aufruf angegeben werden können, bekommen Sie durch:
star -help
Hier wird beschrieben, wie der Löser im parallelen Modus auf den Rechenknoten des Clusters CLUH innerhalb eines Batch-Jobs aufgerufen werden kann. Zur Abgabe von Batch-Jobs steht auf dem Cluster das Batchsystem Sun Grid Engine (SGE) zur Verfügung.
Bereiten Sie ein ausführbares Shellskript vor (d.h. ein (SGE-)Batchskript), das SGE-Kommandos und den Aufruf von STAR enthält und vom Login-Knoten aus an die SGE mit dem Kommando qsub abgeschickt wird.
STAR-CD kann sowohl auf nur einem Rechenknoten des Clusters mit maximal 4 parallelen Prozessen als auch knotenübergreifend verwendet werden. Die zugehörigen Batchskripte und Aufrufe des Lösers STAR sind unterschiedlich und werden in den folgenden Punkten 4.5.2.1 und 4.5.2.2 ausführlicher mit Beispielen behandelt.
Die derzeit am RRZN installierte STAR-CD Version kann mit maximal 128 parallelen Prozessen ablaufen. Aber bei den knotenübergreifenden Rechnungen auf dem Cluster kann STAR-CD nur bis zu 64 parallele Prozesse verwenden, da der Cluster 64 CPUs hat.
Anmerkungen zu dem Aufruf des Lösers STAR durch das Kommando star innerhalb des Batchskriptes:
star -help
Hier wird beschrieben, wie der Löser im parallelen Modus auf nur einem Rechenknoten des Clusters CLUH aufgerufen werden kann. Es können 2, 3 oder 4 parallele Prozesse gewählt werden.
Beispiel für ein Batchskript, wenn STAR auf einem Knoten mit 4 Prozessen laufen soll:
#$ -S /bin/ksh
#$ -N starcdtest
#$ -j y
#$ -cwd
#$ -l h_cpu=00:30:00
#$ -pe shm 4
module load starcd
star -notracker -mpi=mpich $NSLOTS
Anmerkungen zu dem Batchskript:
Es können bis zu 64 parallele Prozesse gewählt werden (siehe Punkt 4.5.2). Bei dieser Variante müssen die Namen der Rechenknoten explizit an STAR-CD übergeben werden.
Beispiel für ein Batchskript, wenn STAR knotenübergreifend mit 8 Prozessen laufen soll:
#$ -S /bin/ksh
#$ -N starcdtest
#$ -j y
#$ -cwd
#$ -l h_cpu=00:30:00
#$ -pe mpi 8
module load starcd
rm –f nodelist
for NODE in `cat $TMPDIR/machines `
do
echo $NODE.rrzn.uni-hannover.de >> nodelist
done
star -notracker -mpi=mpich -nodefile=nodelist
rm nodelist
Anmerkungen zu dem Batchskript:
Angabe im Batchskript: #$ -l notshared
Dieser Abschnitt beschreibt, wie das sogenannte User Coding mit dem Löser STAR auf den Rechenknoten des Clusters verwendet werden kann.
Was ist "User Coding"? Der Anwender kann einige der Standard Merkmale des Lösers STAR modifizieren oder ergänzen, indem er eigene FORTRAN Unterprogramme in STAR implementiert. Das bietet den Vorteil, dass STAR-CD auf die Erfordernisse des zu berechnenden Modells angepasst werden kann. Das könnte z.B. die Randbedingungen, die thermophysikalischen Eigenschaften des Modells oder die Turbulenzmodellierung betreffen. Alle zugehörigen Unterprogramme werden in STAR-CD als UFILE Routinen bezeichnet. Das User's Guide star_uguide.pdf (siehe Punkt 5 "Dokumentation und Beispiele") enthält in Kapitel 18 eine ausführliche Beschreibung dieser Unterprogramme (aufgelistet nach Merkmalen) und wie sie in STAR implementiert werden können.
Kurz das allgemeine Verfahren für das User Coding:
1. Das Unterverzeichnis ufile sollte in dem aktuellen Arbeitsverzeichnis angelegt werden.
2. Das User Coding muss durch geeignete PROSTAR Kommandos aktiviert werden mit der Angabe aller jener Anwender-eigenen Unterprogramme, die in STAR nun verwendet werden sollen (siehe dazu Step 2 bis Step 5 im User's Guide). Für jedes dieser Unterprogramme sollte in dem Verzeichnis ufile eine Datei namens <Unterprogramm-Name>.f stehen, die die zu implementierende Version dieses Unterprogrammes enthält.
3. Wenn der Löser STAR dann aufgerufen wird, werden diese Unterprogramme automatisch an das STAR-CD System im Quellcode-Format übergeben, übersetzt, zu den anderen Modulen von STAR dazugebunden und die Berechnung des Modells mit STAR beginnt.
Nutzung dieses Verfahrens auf den Rechenknoten des Clusters:
Für die Übersetzung der Unterprogramme wird auf dem Cluster der PGI Compiler V5.2 verwendet (automatisch aktiviert durch das Setzen der Umgebung mit dem Befehl module load starcd). Allerdings steht der Compiler auf den Rechenknoten nicht zur Verfügung, sondern nur auf dem Login-Knoten.
Daher muss der letzte Schritt des allgemeinen User Coding - Verfahrens für die Nutzung auf dem Cluster folgendermassen durch die Punkte 3a und 3b ersetzt werden:
3a. Interaktiver Aufruf des Lösers STAR durch das Kommando star mit der Option -ufile auf dem Loginknoten. Es wird nur die Übersetzung der Unterprogramme durchgeführt und eine neue Bibliothek namens libstarusr.so erzeugt, die Berechnung mit STAR findet nicht statt.
3b. Aufruf des Lösers STAR mit dem Kommando star und den Optionen -ulib <Bibliotheksangabe> und -noufile im Batch auf den Rechenknoten. Es wird keine Übersetzung durchgeführt (aufgrund der Angabe -noufile). Die bei dem Punkt 3a neu erzeugte Bibliothek wird in dem Löser STAR eingebunden, somit die angegebenen Unterprogramme in STAR-CD implementiert, und die Berechnung mit STAR findet statt.
Es folgt eine detaillierte Beschreibung der star-Aufrufe für das User Coding auf dem Cluster. Das User Coding ist sowohl im seriellen Modus als auch im parallelen Modus (auf nur einem Knoten oder knotenübergreifend) verwendbar.
a) User Coding auf dem Cluster für einfachgenaues Rechnen:
a.1) Auf dem Loginknoten interaktiv angeben:
star -ufileDann wird in dem Verzeichnis ./ufile ein Unterverzeichnis namens linux64_2.4-pgf90_5.2-glibc_2.2.5-dso angelegt und darin die neu erzeugte Bibliothek libstarusr.so .
a.2) In einem Batchskript, das auf den Rechenknoten ausgeführt wird, angeben:
star -noufile \
-ulib=./ufile/linux64_2.4-pgf90_5.2-glibc_2.2.5-dso/libstarusr.so \
<Weitere star-Optionen>
Dann wird die neue Bibliothek libstarusr.so und somit die angegebenen Unterprogramme in STAR-CD verwendet und die Berechnung mit STAR durchgeführt.
b) User Coding auf dem Cluster für doppeltgenaues Rechnen:
b.1) Auf dem Loginknoten interaktiv angeben:
star -dp -ufileDann wird in dem Verzeichnis ./ufile ein Unterverzeichnis namens linux64_2.4-pgf90_5.2-glibc_2.2.5-dso angelegt und darin ein weiteres Unterverzeichnis namens dp und darin dann die neu erzeugte Bibliothek libstarusr.so .
b.2) In dem Batchskript, das auf den Rechenknoten ausgeführt wird, angeben:
star -dp -noufile \
-ulib=./ufile/linux64_2.4-pgf90_5.2-glibc_2.2.5-dso/dp/libstarusr.so \
<Weitere star-Optionen>
Dann wird die neue Bibliothek libstarusr.so und somit die angegebenen Unterprogramme in STAR-CD verwendet und die Berechnung mit STAR durchgeführt.
Es gibt eine umfangreiche Benutzerdokumentation, die von STAR-CD mitgeliefert wird. Sie ist zu finden als Online Dokumentation und zusätzlich auf dem Cluster CLUH in dem Verzeichnis /cluster/appl/opt/starcd/v3.26/PROSTAR/3.26.003/man .
Tutorialbeispiele findet man ebenfalls auf dem Cluster, in dem Verzeichnis /cluster/appl/opt/starcd/v3.26/PROSTAR/3.26.003/tutorials/star .
Die Beschreibung zu den Tutorialbeispielen steht in dem Dokument /cluster/appl/opt/starcd/v3.26/PROSTAR/3.26.003/man/tutorial/star_tut.pdf .
Regionales Rechenzentrum für Niedersachsen - URL: www.rrzn.uni-hannover.de/starcd.html?&L=1
Dr. Gerd Brand, Last Change: 04.02.2010
Copyright Gottfried Wilhelm Leibniz Universität Hannover