Optimizing CFD Codes by SIMD-Vectorization
Research output: Contribution to conferences › Poster › Contributed › peer-review
Contributors
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
| Original language | English |
|---|---|
| Pages | 1-1 |
| Number of pages | 1 |
| Publication status | Published - 2010 |
| Peer-reviewed | Yes |
Conference
| Title | Competence in High Performance Computing |
|---|---|
| Subtitle | HPC Status Conference of the Gauß-Allianz e.V. |
| Abbreviated title | CiHPC |
| Conference number | |
| Duration | 22 - 24 June 2010 |
| Degree of recognition | National event |
| Location | Schwetzingen Castle |
| City | Schwetzingen |
| Country | Germany |
External IDs
| ORCID | /0009-0009-9342-629X/work/194088088 |
|---|---|
| ORCID | /0000-0001-8719-5741/work/194256557 |
Keywords
Research priority areas of TU Dresden
DFG Classification of Subject Areas according to Review Boards
Keywords
- CFD, source-to-source transformation, vectorization, SIMD, VAMPIR, tracing, performance analysis