Skip to contents

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