Fire-Simulation.at - Simulation von Brandszenarien mit Feld- und Zonenmodellen

Grundlagen | Physik | Chemie | Gitternetz | Hardware | Geometrie | Materialien | Sonstiges Setup | Auswertungen
Lagerhalle Fa. Voith | Bahnhof St. Pölten
Einleitung | Schadensfeuer | Einsatzzweck | Durchführung | Für Wem? | Voraussetzungen | Kosten
Allgemein | Zielgruppe, Leistungen | Zeitaufwand | Abwicklung | Kosten
FDS4DataCreator
Introduction | Summary | Hardware | Input File | Setup | Download Out Files | Screenshots
Links | Quellen
Über den Urheber | Team | Warum | Ausbildung | Leitbild | Aufruf FDS User | Kontakt, Impressum
subglobal11 link | subglobal11 link | subglobal11 link | subglobal11 link | subglobal11 link | subglobal11 link | subglobal11 link

Hardware Benchmark

64 Bit Intel i7 Quadcore System unter Linux OpenSuse 11.1

Nach unzähligen langen Nächten wurde erstmals die 64 Bit MPI Version von FDS 5.3.0 auf einem Intel i7 920 Quadcore System mit insgesamt 12 GB DDR3 RAM unter dem Betriebssystem Linux OpenSUSE 11.1 zum Laufen gebracht. Das System wurde in einem mehrtägigen Langzeittest auf Herz und Nieren geprüft und läuft absolut stabil. Im Folgenden wird für alle Interessierten die detaillierte Konfiguration und das Setup für das System dargestellt.

Ich bitte um Verständnis, dass es aus Kapazitätsgründen nicht oder nur sehr eingeschränkt möglich ist technische Fragen zum Setup zu beantworten und verweise diesbezüglich auf die FDS Google Group unter http://groups.google.com/group/fds-smv.

Die Hardware:
Intel i7 920 2,66 GHz Quadcore CPU
Mainboard ASUS P6T Deluxe
12 GB DDR3 RAM 1600 MHz, CL9
GeForce 8400 256 MB Standard Grafikkarte
500 Watt ATX Netzteil
Gehäuse mit 7 nachträglich eingebauten Gehäuselüftern

 

 


Erfahrungen zur Hardware:

  • Bei der Verwendung der i7-920 und i7-940 Serie ist ein 1033 DDR3 RAM ausreichend da die 1600er DDR3 lediglich mit der i7-965 Extreme Edition genutzt werden können.
  • Die 12 GB RAM wurden nur für Versuchszwecke eingebaut. In der Praxis dürften 6 GB jedenfalls ausreichen, da Rechengitter mit mehr als 1 GB pro CPU Core die Rechenzeit sehr in die Höhe treiben.
  • Die Mainboards immer mit drei DDR3 RAM Riegeln bestücken (z.B. 3 x 2 GB), da der Datendurchsatz in dieser Konfiguration optimal ist.
  • Bei einer maximalen CPU Verlustleistung von 130 Watt ist auf eine optimale Kühlung zu achten. Bewährt haben sich relativ geräuscharme 120er Lüfter welche direkt das Mainboard anströmen und Lüfter an den Stirnseiten, welche die warme Luft abführen. Wasserkühlung hat sich nicht bewährt, da vor allem bei i7 Systemen auch das Mainboard und dessen Heatpipes aber auch die DDR3 RAM gut gekühlt werden müssen.
  • Bei vernetzten Systemen ist GB LAN unbedingt zu empfehlen.
  • Die Auswertung mit Smokeview erfolgt auf einem Windows System, daher wurde auf die Qualität der Grafikkarte kein Wert gelegt
  • Nach der Installation werden 8 CPU Cores vom Betriebssystem angezeigt, der Grund liegt im Hyperthreading der i7 CPU, welche jeden Core nocheinmal virtuell aufteilt und die Auslastung dynamisch je nach Bedarf zwischen den beiden virtuellen Cores aufteilt.

Software

Das Setup der Software war der aufwendigste Part bei der System Inbetriebnahme. Rund 100 Stunden und viele kurze Nächte hat es gekostet um das System zum Laufen zu bekommen bzw. optimal zu konfigurieren.
Als Testlauf wurden Extremszenarien wie z.B. Berechnungen mit 64 Netzen auf 8 CPU Cores, 4 Netze auf 4 Cores mit insgesamt 10 GB RAM Bedarf, oder ein Riesennetz mit rund 10.000.000 Zellen auf einem CPU Core. Die Sinnhaftigkeit dieser Versuche diente lediglich um die Systemstabilität zu testen. In der Praxis würden die Berechnungen bei z.B. 10.000.000 Zellen auf einem System viel zu lange brauchen.

Fraglich ist auch ob es überhaupt sinnvoll ist ein 64 Bit System zu benutzen??
Ich würde sagen Ja, da meiner Meinung nach die Vernetzung von mehreren Quadcore Systemen mit je 6 GB RAM den besten Kosten-Nutzen Faktor für größere Berechnungen darstellen. Bei 32 Bit Systemen hat man vor allem bei Quadcore Systemen das Problem, dass jedem CPU-Core nicht einmal ein GB "Rechenleistung" (rund 1.000.000 Zellen) zugeteilt werden können, da das System maximal 4 GB Arbeitsspeicher verwalten kann.

Folgende Software wurde installiert:
- OpenSUSE 11.1 (64 Bit Version)
- Intel C++ Compiler 11.0.074 (Intel64)
- Intel Fortran Compiler 11.0.074 (Intel64)
- MPICH2-1.0.8
- FDS 5.3.0

Zusätzlich wurde der SSH Zugriff aktiviert und ein Apache Server eingerichtet um die Fernsteuerung über einen Windowsclient zu ermöglichen.

Achtung: Die gesamte Installation erfolgte als root Benutzer

Folgend einige Hinweise zur Installation der einzelnen Komponenten:
Die Intel C++ und Fotran Compiler sind auf der Intel Homepage als non commercial Version erhältlich und wurden in der Standardkonfiguration installiert.

Falls bestimmte Pakete während der Installation vermisst werden (pre-requisite missing) so wurden diese über YAST2 nachinstalliert:
C++ Compiler:
pre-requisite missing: libstdc++.so.5 .... Lösung: libstdc+33 über YAST2 installieren
pre-requisite missing: g++...... Lösung: Installieren von gcc-c++ und gcc-fortran über YAST2

Fortran Compiler:
Falls activation module Fehler auftritt.... Lösung: Im yast2 nach libstdc++.so.5 suchen und paket installieren

Nach der erfolgreichen Installation in usr/bin folgende Symbolic Links setzen:
ln -s /opt/intel/Compiler/11.0/074/bin/intel64/ifort ifort
ln -s /opt/intel/Compiler/11.0/074/bin/intel64/icc icc

MPICH2 installieren
http://www.mcs.anl.gov/research/projects/mpich2/
Das Installationsverzeichnis anlegen und mit config die datei builden. Siehe hierzu auch die Readme Datei im MPICH2 Verzeichnis.

Direkt im MPICH Verzeichnis ausführen (dort wo die config Datei ist):
CC=icc
CXX=icpc
F77=ifort
F90=ifort
CFLAGS=-m64
CXXFLAGS=-m64
FFLAGS=-m64
FCFLAGS=-m64
./configure --enable-static

Durch folgenden Befehl wird MPICH2 entsprechenden der vorigen Konfiguaration compiliert und im MPICHxx/bin Verzeichnis erstellt:
make && make install

Nach der erfolgreichen Installation im usr/bin Verzeichnis folgende Symbolic Links setzen:
ln -s /MPICHxx/bin/mpicc mpicc
ln -s /MPICHxx/bin/mpif90 mpif90

„Subversion“ über YAST2 installieren.
Subversion ist ein kleines Hilfsprogramm mit dem Quellcode und Dateien in der aktuellen Versionen heruntergeladen werden können. Die FDS Downloaddateien unterstützen dieses "Subversion"

Den Letztstand von FDS5 herunterladen:
svn checkout http://fds-smv.googlecode.com/svn/trunk/FDS/trunk/ fds-smv-read-only

FDS5 Intel 64 Standard Version kompilieren:
Hier kann das Standard Makefile verwendet werden. Das compilieren erfolgt mit folgendem Befehl, wobei dieser Befehl im Makefile Verzeichnis ausgeführt werden muss.
make fds5_intel_linux_64

Um die 64 Bit MPI Version zu compilieren muss folgender Abschnitt in der Makefile Datei ergänzt werden:
intel_linux_mpi_64 : FFLAGS = -O3 -unroll -static -ipo -xW
intel_linux_mpi_64 : CFLAGS = -O3 -Dpp_noappend -unroll -static -ipo -xW
intel_linux_mpi_64 : FCOMPL = mpif90
intel_linux_mpi_64 : CCOMPL = mpicc
intel_linux_mpi_64 : obj = fds5_mpi_intel_64
intel_linux_mpi_64 : setup $(obj_mpi)
            $(FCOMPL) $(FFLAGS) -o $(obj) $(obj_mpi)

Achtung: Im Makefile muss der Abstand vor dem $-Zeichen ein Tabulator sein.... keine Leerzeichen!!

make intel_linux_mpi_64

Im /bin/usr einen symbolic link auf die mpiexec im mpich2 verzeichnis setzen

SSH installieren (apt-get install ssh) und auf der Firewall in der externen Zone freigeben.
Samba über YAST2 installieren und das entsprechende Port auf der Firewall freigeben.
Mit SSH und Samba kann der Rechner von einem Windows Client komplett ferngesteuert werden.

Falls bis hierhin alles geklappt hat, sollte eine FDS-MPI 64 Bit Simulation nun möglich sein. Vor dem Start sollten jedoch noch folgende Befehle ausgeführt werden:
export PATH=/Installverzeichnis von MPICH/mpich2-1.0.8/bin:$PATH
ulimit -s unlimited
ulimit -v unlimited
mpd &
Mit ulimit xxx wird die Stacksize erhöht um auch Berechnungen > 2GB durchführen zu können

mpd& startet MPICH Dienst
mpdallexit beendet den MPICH Dienst

Ich kopiere üblicherweise das compilierte FDS File in das jeweilige Projektverzeichnis und starte eine Simulation wie folgt:
mpiexec -n 4 ./fds5_mpi_intel_64 ./room_fire_10GB.fds
Startet eine Simulation auf 4 Cores.

Angemerkt wird, dass die angeführte Konfiguration bei mir so funktioniert hat, aber keine Gewähr gegeben hat, ob sie auch auf einem anderen System so funktioniert. Als Quellen dienten die verschiedensten Forenbeiträge und eigene Erfahrungen die ich gemacht habe. Da ich kein Linux Profi bin, kann es durchaus sein, dass bestimmte Befehle nicht optimal sind, oder auch unnötig sind. Bitte um entsprechende Infos um die Beschreibung entsprechend adaptieren zu können, aber auch eigene Erfahrungen und Verbesserungen können gerne übermittelt werden und werden hier veröffentlicht.
Aus Zeitgründen ist es leider nur sehr eingeschränkt möglich Fragen zum Setup und technische Fragen zu beantworten, bitte um Verständnis.


Top↑

Die Hardware...

ACHTUNG der folgende Abschnitt behandelt die alte FDS 4 Version und ist auch bezüglich der Hardware nicht mehr der aktuelle Stand der Technik!!!

... ist neben des Modells und des Fachwissens des Anwenders ein weiterer wesentlicher Faktor bei CFD Simulationen. Als kleine Orientierung is folgend eine kleine Zusammenstellung von unterschiedlichen Systemen und deren Leistung bei der Simulation eines FDS Musterbeispieles. Der Text ist in englischsprachig, da diese Seite verlinkt ist mit dem Seneca Fireforum.

 

 

 


Top↑

FDS Benchmark relating to the
Fireforum Thread from Seneca College

http://fireforum.senecac.on.ca/cgi-bin/wwwthreads//showflat.pl?Cat=&Board=parallel&Number=1453&page=0&view=collapsed&sb=5&o=&fpart=

For questions or if you like to add the benchmark of your own system - please mail me (Screenshot and out File):
E-Mail: michael.pulker@fire-protection.at


Top↑

Summary:

System Nr.
System Type
Simulation Type
Total time
CPU Load Balance %
Rank
4
Pentium Dualcore 3,4 GHz
MPI
461 min
98,9:56,7
1
2
AMD Dualcore 2,2 GHz
MPI
696 min
99,8:41,9
2
1
P4 3,0GHz, Hyperthreading
MPI
710 min
97,4:68,5
3
3
Pentium Dualcore 3,4 GHz
No MPI
730 min
66,1:33,3
4

Load Balance measured at Iteration 62000

In the Input File the grids are not balanced (64000 : 38400 cells), so it's self-evident that the CPU Loads are not balanced.
But it's very interesting that the Intel Dualcore is more balanced than the AMD Dualcore (see also screenshots) - But I have not the faintest idea why? If somebody knows please let me know!


Top↑

Hardware:

System 1:
Intel Pentium-4 630 S775 Prescott 3.0 GHz, 800 FSB (Single Core Hyperthreading)
ASUS S775 P5AD2-E Deluxe
2 GB DDR2 RAM PC-533 CL4

System 2:
Athlon 64 X2 4400+ 2,2 GHz (Dualcore)
ASUS A8N-VM CSM S939
2 GB DDR PC400 CL3

System 3:
Pentium D 950 3,4 GHz, 800 FSB (Dualcore)
ASUS P5WD2 S775
4 GB DDR2 PC533 CL4

System 4 (identical to System 3):
Pentium D 950 3,4 GHz, 800 FSB (Dualcore)
ASUS P5WD2 S775
4 GB DDR2 PC533 CL4


Top↑

Input File (Download):
&HEAD CHID='Bench-2-meshes', TITLE='Bench-2-meshes-Intel-MPI'/

&GRID IBAR=40, JBAR=40, KBAR=40 /
&PDIM XBAR0=0., XBAR=10., YBAR0=0., YBAR=10., ZBAR0=0., ZBAR=10./

&GRID IBAR=80, JBAR=12, KBAR=40 /
&PDIM XBAR0=10., XBAR=20., YBAR0=0., YBAR=10., ZBAR0=0., ZBAR=10./

&TIME TWFIN=1800., SYNCHRONIZE=.TRUE. /

&SURF ID='Brenner', HRRPUA=591.67, RAMP_Q='BURNER', PART_ID='TRACERS'/
&PART ID='TRACERS', MASSLESS=.TRUE., QUANTITY='BLACK'/
&RAMP ID='BURNER', T=0., F=0./
&RAMP ID='BURNER', T=300., F=0.17/
&RAMP ID='BURNER', T=600., F=0.33/
&RAMP ID='BURNER', T=900., F=0.49/
&RAMP ID='BURNER', T=1200., F=0.66/
&RAMP ID='BURNER', T=1500., F=0.81/
&RAMP ID='BURNER', T=1800., F=1.0/

&VENT XB=2.0, 4.0, 0., 0., 0., 3., SURF_ID='OPEN' /
&VENT XB=14.0, 19.0, 2., 8., 10., 10., SURF_ID='OPEN' /

&OBST XB= 3.0, 6.0, 3.0, 6.00, 0.0, 1.00, SURF_IDS='Brenner','INERT','INERT'/


Top↑

Setup:

On System 1,2 and 4 I ran the simulation with the parallel Version of FDS (fds4_mpi.exe).
On System 3 I ran the simulation with the Standard Version of FDS (fds4.exe)

At the Start of the Simulation all Systems where idling state, this means no threads or tasks with a essential processor load where started (like anti virus software,...)


Top↑

Download Out Files:

Out File System Nr. 1
Out File System Nr. 2
Out File System Nr. 3
Out File System Nr. 4


Top↑

Screenshots:

System 1 (Intel Singlecore with Hyperthreading) - with MPI
4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

System 2 (AMD Dualcore) - with MPI
1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

System 3 (Intel Dualcore) - without MPI
3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

System 4 (Intel Dualcore) - with MPI
2

 

 

 

 

 

 

 

 

 

 

 

 

 

About Us | Kontakt | © 2006 Ing. Michael Pulker