Retain is multi-threaded and able to make use of multiple CPU cores. The base server uses 4 threads, and the Indexer starts with 3 threads.
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.