[TFRT] Update MultiThreadedWorkQueueFactory use 256 blocking threads by default
[TFRT] Update MultiThreadedWorkQueueFactory use 256 blocking threads by default

Here is the threadpool configuration after this change:
- If user does not explicitly configure non-blocking thread number, TFRT will set non-blocking thread number to be the number of physical threads on the machine.
- If user does not explicitly configure blocking thread number, TFRT will set blocking thread number to 256.

Here is the rationale behind this change:

By TFRT's threadpool design, users should avoid scheduling tasks that do both computation-intensive work and blocking work. This means that the tasks scheduled in the blocking threadpool should spend more of its time doing blocking work instead of the computation work.

Thus the best practice is for TFRT non-blocking threadpool has the same thread number as the available physical threads so that it can fully utilize CPU capacity. And the blocking threadpool should allow a large number of threads to do blocking work. The cost of context switch overhead for those blocking threads should be outweighed by the benefit of running the blocking work (e.g. I/O).

PiperOrigin-RevId: 324648042

tensorflow/runtime,tensorflow/runtime,tensorflow/runtime,tensorflow/runtime