Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
The Bitcoin Core on Heterogeneous Multi-Processing platforms

The Bitcoin Core on Heterogeneous Multi-Processing platforms

Consider a system on the heterogeneous computing ARM big.LITTLE architecture, e.g., ODROID-HC1 powered by Samsung Exynos 5 Octa 5422.

As the Bitcoin Core is a highly computationally intensive application, the usage of ultra-low power and slower LITTLE cores could lead to a substantial lagging and errors (see: https://github.com/bitcoin/bitcoin/issues/16008).

Also there are report about other flaws in LITTLE cores design.

The suggested solution of the described problem is to force the CPU core affinity of the Bitcoin Core processes. On Linux this could be achieved by the taskset command:

# In Samsung Exynos 5 Octa 5422 CPU cores from 0 to 3 are `LITTLE', and from 4 to 7 are `big'.

# Launch bitcoind with the forced affinity to all of the `big' cores.
/usr/bin/taskset --cpu-list 4-7 /usr/local/bin/bitcoind -daemon

# Run functional tests from the repository root directory.
taskset --cpu-list 4-7 ./test/functional/test_runner.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.