Thanks to visit codestin.com
Credit goes to immunomind.github.io

Skip to content

Limit the number of threads used by immunarch (DuckDB)

What is happening under the hood?

immunarch uses immundata, which uses duckplyr, which runs queries in DuckDB. It is quite a journey from the data to your plots.

DuckDB can use many CPU cores by default to run faster, but sometimes you want to limit this.

Why limit threads?

  • On shared machines (servers, CI), many threads can slow down other users.
  • In tutorials, fewer threads make examples more predictable and easier to reproduce.
  • Lower threads = lower CPU load (but slower queries).

How to limit the number of threads

Put this near the start of your tutorial/script:

# Limit the number of CPU threads used by DuckDB in this R session
duckplyr::db_exec("SET threads TO 1")

Change later (example: use 4 threads) or reset to default:

duckplyr::db_exec("SET threads TO 4")   # use 4 threads
# or, if supported in your environment:
duckplyr::db_exec("RESET threads")      # back to DuckDB default

References

  • duckplyr - dplyr powered by DuckDB: https://duckplyr.tidyverse.org (CRAN: duckplyr).

  • db_exec - https://duckplyr.tidyverse.org/reference/db_exec.html

  • DuckDB configuration docs - thread/memory settings and more: https://duckdb.org/docs/stable/configuration/overview.html