in reply to WorkCrew threading

make tends to run fastest when set to use twice as many processes as there are CPUs, so there are cases where more threads/processes than CPUs can provide a performance benefit, generally because one can be working on its available data while another waits for more data to arrive (from disk, network, main memory, wherever). But you won't even get twice the performance out of that unless you're waiting on a very slow data source.

In this context, forking/threading just provides a way to minimize the CPU's idle time. If your CPU utilization is already at or near 100% (as it probably would be for a simple processor-bound task like this one), then you're not going to gain anything. Threads aren't magic enough to run the CPU at 110%, much less 1000%.