Optimizing CFD Codes by SIMD-Vectorization
Publikation: Beitrag zu Konferenzen › Poster › Beigetragen › Begutachtung
Beitragende
Abstract
The objective of the research project HICFD (Highly Efficient Implementation of CFD Codes for HPC Many-Core Architectures) is the development of new methods and tools for the analysis and optimization of the performance of parallel CFD codes (computational fluid dynamics codes) on high performance computer systems with many-core processors. In the work packages of the project the performance of parallel CFD codes shall be increased by the optimal use of all parallelism levels. On the level of the processor cores a tool has to be developed in order to comfortably exploit the parallel SIMD units (single instruction, multiple data).
Hence we developed Scout, a configurable source-to-source transformation tool designed to automatically vectorize C source code. Based on the requirements imposed by the two CFD codes TAU and TRACE the main function of the tool is the vectorization of loops using SIMD instructions. Scout supports several SIMD instruction sets like SSE or VMX and is easily extensible to upcoming ones. Beyond the specific target of CFD codes, the tool is aimed to become an industrial-strength vectorizing preprocessor and is therefore published under an Open Source license.
In order to determine the efficiency of the vectorization performed by Scout we add new programming features to the performance analysis suite VAMPIR. Detailed information about SIMD specific data are often only accessible on the processor level. Modern processors provide special registers (hardware performance counters) in which data about various hardware events can be stored like the number of executed SIMD instructions. Therefore, we extend the tracing capabilities of VAMPIR on the basis of such registers and develop new displays in VAMPIR visualizing several SIMD metrics which are composed of the recorded hardware counters.
Hence we developed Scout, a configurable source-to-source transformation tool designed to automatically vectorize C source code. Based on the requirements imposed by the two CFD codes TAU and TRACE the main function of the tool is the vectorization of loops using SIMD instructions. Scout supports several SIMD instruction sets like SSE or VMX and is easily extensible to upcoming ones. Beyond the specific target of CFD codes, the tool is aimed to become an industrial-strength vectorizing preprocessor and is therefore published under an Open Source license.
In order to determine the efficiency of the vectorization performed by Scout we add new programming features to the performance analysis suite VAMPIR. Detailed information about SIMD specific data are often only accessible on the processor level. Modern processors provide special registers (hardware performance counters) in which data about various hardware events can be stored like the number of executed SIMD instructions. Therefore, we extend the tracing capabilities of VAMPIR on the basis of such registers and develop new displays in VAMPIR visualizing several SIMD metrics which are composed of the recorded hardware counters.
Details
| Originalsprache | Englisch |
|---|---|
| Seiten | 1-1 |
| Seitenumfang | 1 |
| Publikationsstatus | Veröffentlicht - 2010 |
| Peer-Review-Status | Ja |
Konferenz
| Titel | Competence in High Performance Computing |
|---|---|
| Untertitel | HPC Status Conference of the Gauß-Allianz e.V. |
| Kurztitel | CiHPC |
| Veranstaltungsnummer | |
| Dauer | 22 - 24 Juni 2010 |
| Bekanntheitsgrad | Nationale Veranstaltung |
| Ort | Schwetzingen Castle |
| Stadt | Schwetzingen |
| Land | Deutschland |
Externe IDs
| ORCID | /0009-0009-9342-629X/work/194088088 |
|---|---|
| ORCID | /0000-0001-8719-5741/work/194256557 |
Schlagworte
Forschungsprofillinien der TU Dresden
DFG-Fachsystematik nach Fachkollegium
Schlagwörter
- CFD, source-to-source transformation, vectorization, SIMD, VAMPIR, tracing, performance analysis