Installation of PyHarm with pip

Installation of PyHarm with pip#

On Linux (x86_64), macOS (x86_64, ARM64) and Windows (x86_64), install PyHarm using the command:

pip install pyharm

This will install PyHarm and all the dependencies, most notably the C library CHarm, which is internally called by PyHarm.

The CHarm binaries were compiled using the following settings.

  • gcc compiler on Linux and macOS and MSVC on Windows.

  • --enable-double-precision to compile in double precision.

  • --enable-openmp to enable parallelization among CPU cores.

  • On x86_64 CPUs, --enable-avx to enable SIMD parallelism using the AVX instruction sets of x86_64 CPUs. AVX has been with us for more than 10 years now, so the binaries should run on any reasonably old CPU. Should you get an error like Illegal instruction, this means your CPU does not support AVX. In that case, you have to build PyHarm from source and avoid using any set of AVX instructions (see Building from source).

  • -O3 -ffast-math -Wall -Wpedantic compiler flags on Linux and macOS and /O2 /fp:fast /FS /GL on Windows to optimize the library for best performance. Importantly, you should be aware that -ffast-math and /fp:fast relax some rules on floating point arithmetics in favour of gaining some additional computing speed. As a result, the accuracy may be slightly worse than when not using these flags. Normally, however, one does not need to bother by this. Should you need compliance with the IEEE specifications, compile the library on your own without these flags.

  • --enable-python to build the PyHarm wrapper.


All this information is also available directly from PyHarm by calling:

>>> import pyharm as ph
>>> ph.misc.print_info()

This will print some useful compilation details about your particular PyHarm build.


On ARM CPUs, the SIMD parallelization through the NEON instruction set is not yet supported, but it is on the TODO list.