0

Ubuntu 20.04 64-bit aarch64

I have successfully built High Performance Linpack (HPL-2.3) from source specifying the OpenBLAS serial shared library in the HPL Make.myconfig file. HPL runs happily.

I would now like to build HPL using the OpenBLAS OpenMP shared library version. Having done a recursive grep omp on the HPL source directory I can't find any OpenMP pragmas in the source code.

My question is, when I build HPL do I need to specify -fopenmp as a compile option? My thinking is that HPL is not using OpenMP, and does not need to know that the OpenBLAS shared library it is linked does use OpenMP. I'm sure I could be wrong, but I don't know why...

Best regards

John Duffy
  • 31
  • 2
  • Apparently no. Note that Intel provide a carefully optimized HPL implementation that usually run significantly faster on Intel processors (but I guess it should not be too bad on AMD processors too compared to the default HPL implementation). The provided binaries already take such concerns into account and *does use OpenMP* (and MPI). However, the number of threads as well as other parameters have to be specified in a separate config file. – Jérôme Richard Jul 19 '20 at 00:03
  • You don't need to specify `-fopenmp` to the compiler as there are no OpenMP pragrams in HPL itself. You may need to specify some additional flags to the linker though, depending on your platform. In your case, you may need to link the HPL executable explicitly with the POSIX threading library. – Hristo Iliev Jul 19 '20 at 13:02
  • Thanks for the replies. When I add -fopenmp to my compile flags, I can get the OpenMP version of OpenBLAS to run using all 4 cores of my CPU. I'm guessing this flag gets passed to the linker. – John Duffy Jul 22 '20 at 08:41

0 Answers0