# YRT-PET Configuration ## Number of threads Since YRT-PET currently uses the `std::thread` library to parallelize work, the thread selection is managed by that library. YRT-PET uses the maximum number of available threads unless the `--num_threads` is passed to the executables. Alternatively, one can run YRT-PET (or any process) using `taskset` to limit CPU core selection. ### From Python Using the Python bindings, it is possible to call `yrt.setNumThreads(...)` to set the number of threads that will used for parallelized operations. This will only affect the current process. The `yrt.getNumThreads()` function also exists to gather that information. ## Disabling page-locked memory (or pinned memory) For GPU operations, the intermediary buffers are allocated as page-locked memory. This increases speed as it can allow for asynchronous copies between host and device. It is possible, however, to disable this behavior by setting the `YRTPET_DISABLE_PINNED_MEMORY` environment variable to `yes`. ## From Python Using the Python bindings, it is possible to call `yrt.setPinnedMemoryEnabled(...)` to define this option. This will not alter any environment variable, it will only affect the current process. The `yrt.isPinnedMemoryEnabled()` function also exists to gather that information.