In partnership with IBM, ANEO has started porting some applications on IBM latest « Power 9 » systems. The Power architecture (and the Power 9 processor in particular) is optimized for high memory bandwidth and better performance for applications that require frequent data access. Memory bandwidth is a technical feature that is not very emphasized in hardware specifications, yet it is often the main performance bottleneck in today’s applications.
One of the codes that have been ported on Power is SeWaS (Seismic Wave Simulator), a modern and optimized simulation software developed by ANEO.
The two goals of this study were to assess performance and difficulty of porting an application on Power.
Difficulty of porting
The Power architecture uses a specific CPU instruction set, which requires recompiling applications and their dependencies. IBM claims, however, that « 95% of Linux x86 applications written in C/C++ are ported on Power without having to change the source code. »
In our case with SeWaS the porting was surprisingly easy. We simply ran the exact same installation script that we usually run on Intel processors and everything worked as expected, making transparent that it was being compiled for a different architecture.
In particular, IBM provides a free software suite named Advance Toolchain, containing most of the common HPC libraries optimized for Power (Boost,…) as well as the GCC 7 compiler, which proved very convenient.
The benchmark was done on virtual machines provided by IBM with only 2 physical cores, which is not a very representative sample of performance. Though, performance measured on these 2 cores is very promising, and it is clear at least that the application was correctly optimized for the Power architecture, even though a very generic installation script was used:
Optimizations / future developments
Aneo will be doing further benchmarks on Power in the future, especially on systems with Power 9 + NVidia GPUs, from which a much greater performance difference is to expect (usually 5 or 10 times better performance compared to regular CPU machines).
One of the main advantages of Power9 is enhanced support of accelerators (FPGA, NVidia GPUs), with technologies such as CAPI and NVlink for higher bandwidth, from which seismical applications benefit a lot.