Retain is multi-threaded and can make use of multiple CPU cores. The base server uses 4 threads, and the indexer starts with 4 threads.
It is recommend to have 25 indexing threads for every 2 CPU cores. A system with 16 cores is tested with 200 threads. It never maxed out the CPU, which stayed around 75% utilization while indexing. The bottleneck will be disk IO once you hit 150 to 200 threads no matter how many CPU cores you have.