CPU vs GPU

July 03, 2010 Von: Boris Kategorie: FDS Comments Off on CPU vs GPU

In den vergangenen Jahren ist vermehrt über das Thema Leistungssteigerung durch die Verwendung von GPUs berichtet worden. Bei zeitaufwändigen Berechnungen, wie etwa CFD-Simulationen, klingen die beworbenen Geschwindigkeitssteigerungen verlockend, können aber auch durchaus Probleme mit sich bringen.

Das durch Parallelisierung zu erschliessende Potential ist zur Zeit Entwicklungsziel sowohl der traditionellen CPU-Entwickler als auch der Entwickler von Grafikkarten. Wahrend die universell nutzbaren CPUs immer mehr Kerne erhalten, werden die eigentlich sehr eingeschränkt nutzbaren GPUs immer universeller anwendbar. Letzteren wurde teilweise ein Geschwindigkeitsvorteil um einen Faktor zwischen 10x und 1.000x nachgesagt. Dabei erfolgte der Vergleich jedoch häufig mit Single-Core-CPUs.

Wissenschaftler von Intel haben das Thema jetzt genauer untersucht und die Ergebnisse ihrer Arbeit veröffentlicht: Debunking the 100X GPU vs. CPU Myth: An Evaluation of Throughput Computing on CPU and GPU

Der erreichbare Geschwindigkeitszuwachs erreicht dabei bis zu einem beachtlichen Faktor von 14.9, liegt allerdings teilweise unter 1x. Der für FDS zumindest teilweise aussagekräftige Teil des Benchmarks FFT liegt bei 3x.

Grundsätzlich ist das Thema komplex: um die Rechenleistung moderner GPUs effektiv nutzen zu können bedarf es intensiver Optimierungsarbeit. Sobald beispielsweise die Kommunikation zwischen GPU und CPU zunimmt, drohen starke Geschwindigkeitseinbußen. Bei dem zur Zeit auf einer GPU zur Verfügung stehenden Speicher, kann dies zu einem Problem werden. Des Weiteren hat Herr Rogsch im Rahmen seiner Arbeit an einer Parallelisierung mittels OpenMP bereits darauf hingewiesen dass einige Modelle in FDS zur Zeit aufgrund ihres Aufbaus praktisch keine Parallelisierung zulassen.

Weitere Parallelisierungsstrategien in kommenden Versionen von FDS

March 29, 2010 Von: Boris Kategorie: FDS 2 Kommentare →

 Im offiziellen Forum der FDS-Entwickler ist über die Frage nach Plänen zur Nutzung von GPGPU mittels OpenCL in zukünftigen FDS-Versionen eine interessante Diskussion zum aktuellen Stand des Themas und möglichen Strategien zur Nutzung in FDS in Gang gekommen.

Einen sehr guten Überblick über die aktuellen Probleme, die erforderliche Vorarbeit und die Chancen bietet der Beitrag von Christian Rogsch. 

Zusammenfassend kann man das Thema durchaus als verfolgenswert bezeichnen. Christian Rogsch arbeitet mittel bis langfristig an einer konsequenteren Parallelisierung des Codes, die seiner aktuellen Arbeit mit OpenMP zukommen soll. Sollten zukünftige Compiler-Versionen die Nutzung von GPGPU mittels Compilerdirektiven aus Fortran-Code weiter vereinfachen und durchgängig nutzbar machen, steht einer deutlichen Leistungssteigerung grundsätzlich nichts mehr im Weg.

Änderungen am Pyrolyse-Modell und neue Versionen von FDS und SMV

September 15, 2009 Von: Boris Kategorie: FDS, SMV Comments Off on Änderungen am Pyrolyse-Modell und neue Versionen von FDS und SMV

Im Entwickler-BLOG zu FDS geht Kevin McGrattan auf aktuelle Änderungen in FDS 5.4 am Pyrolyse-Modell ein und warnt dabei vor einer Nutzung ohne sich vorher intensiv mit der Thematik beschäftigt zu haben.
Die Thematik wurde vergangenes Jahr schon intensiv diskutiert und ist zur Zeit Thema eines aktiven Forschungsvorhabens am NIST. 

Die neue Parallelisierung mittels OpenMP ist offensichtlich auf großes Interesse bei den FDS-Nutzern gestossen. Zumindest das Feedback kam schnell und umfangreich.
Der Entwickler Christian Rogsch konnte aufgrund der zahlreichen Rückmeldungen zeitnah die vorhandenen Probleme der OpenMP Implementierung beseitigen und kommt zu der Erkenntnis, dass „das compilen und debuggen von OpenMP-Programmen eines der letzten Abenteuer der Menschheit ist“. 🙂

Die Entwicklung zeigt, wie vorsichtig man bei grundlegend neuen Funktionen bzw. umfangreichen Änderungen des Programmes sein muss. 

Sowohl von FDS als auch von SMV wurden zwischenzeitlich kleinere Bugfixes veröffentlicht.

FDS OpenMP

September 07, 2009 Von: Boris Kategorie: FDS Comments Off on FDS OpenMP

Nur wenige Tage nach der Freigabe von FDS 5.4 hat Christian Rogsch eine erste Testversion mit OpenMP veröffentlicht.
Die OpenMP-Version ist neben MPI eine weitere Variante um FDS-Simulationen auf mehrere CPU-Kerne zu verteilen, funktioniert aber (anders als MPI) ausschließlich auf den Kernen 1 Systems. Der Vorteil: die bisher bestehenden Probleme mit dem Pressure-Solver bei Verwendung von MPI müssen nicht auftreten, da zur effektiven Parallelisierung nicht mehrere MESHes genutzt werden müssen.
In späteren Versionen des Programmes soll auch die Möglichkeit bestehen, OpenMP und MPI kombiniert nutzen zu können.
Die aktuelle Version ist als Testversion zu verstehen. Das große Feedback läßt darauf schließen, daß davon ausgiebig Gebrauch gemacht wird.

Derweil plant Randy McDermott die Anzahl der unterschiedlichen Programmversionen von FDS zukünftig zu reduzieren (1 und 2). Idealerweise sollen zukünftig nur noch eine 32- und eine 64-bit Version des Programms gewartet werden müssen.

Update:
Zwischenzeitlich hat Christian Rogsch eine neue Version der OpenMP Version von FDS 5.4 veröffentlicht. Die ersten Problemmeldungen waren offensichtlich die Folge eines Compilerproblems.

FDS 5.4 ist fertig

September 07, 2009 Von: Boris Kategorie: FDS Comments Off on FDS 5.4 ist fertig

FDS 5.4 ist fertig und steht für diverse Systeme zum download bereit.
Die neue Version bringt neben kleineren Erweiterungen signifikante Änderungen mit sich, die teilweise jedoch erst in zukünftigen Versionen zum Tragen kommen werden.
Aktuell von größerer Bedeutung ist das aktivierte Werner-Wengle-Wandmodell, welches zukünftig aber noch erweitert werden soll (Rauheit der Oberfläche).
Intensive Tests und Feedback erhoffen sich die Entwickler darüber hinaus zu noch ausstehenden OpenMP-Versionen, die eine verbesserte Parallelisierung auf Mehrkern-Systemen ermöglichen sollen.
Eine speziell kompilierte Version von FDS 5.4 soll in den nächsten Wochen folgen.

Nebenbei haben die Entwickler die Installationsroutine auf Windows-Systemen geändert.

Update
Zwischenzeitlich hat Christian Rogsch im aktuellen Forum berichtet, daß eine erste Version der Implementierung von OpenMP fast fertig ist. Diese soll dann zeitnah zu Testzwecken veröffentlicht werden.